成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一日一技:讓你的正則表達式可讀性提高一百倍

開發
有沒有什么辦法提高正則表達式的可讀性呢?我們知道,提高代碼可讀性的方法之一就是寫注釋,那么正則表達式能不能寫注釋呢?

正則表達式這個東西,強大是強大,但寫出來跟個表情符號一樣。自己寫的表達式,過一個月來看,自己都不記得是什么意思了。比如下面這個:

pattern = r"((?:\(\s*)?[A-Z]*H\d+[a-z]*(?:\s*\+\s*[A-Z]*H\d+[a-z]*)*(?:\s*[\):+])?)(.*?)(?=(?:\(\s*)?[A-Z]*H\d+[a-z]*(?:\s*\+\s*[A-Z]*H\d+[a-z]*)*(?:\s*[\):+])?(?![^\w\s])|$)"

有沒有什么辦法提高正則表達式的可讀性呢?我們知道,提高代碼可讀性的方法之一就是寫注釋,那么正則表達式能不能寫注釋呢?

例如對于下面這個句子:

msg = '我叫青南,我的密碼是:123kingname456,請注意保密。'

我要提取其中的密碼123kingname456,那么我的正則表達式可能是這樣的:

pattern = ':(.*?),'

我能不能把它寫成這樣:

pattern = '''
: # 開始標志
(.*?) #從開始標志的下一個字符開始的任意字符
, #遇到英文逗號就停止
'''

這樣寫就清晰多了,每個部分是什么作用全都清清楚楚。

但顯然直接使用肯定什么都提取不到,如下圖所示:

圖片

但我今天在逛Python正則表達式文檔的時候,發現了一個好東西:

圖片

使用它,可以讓你的正則表達式擁有注釋,如下圖所示:

圖片

re.VERBOSE?也可以簡稱為re.X,如下圖所示:

圖片

本文最開頭的復雜正則表達式,使用了注釋以后,就會變得更可讀:

pattern = r"""
( # code (capture)
# BEGIN multicode

(?: \( \s* )? # maybe open paren and maybe space

# code
[A-Z]*H # prefix
\d+ # digits
[a-z]* # suffix

(?: # maybe followed by other codes,
\s* \+ \s* # ... plus-separated

# code
[A-Z]*H # prefix
\d+ # digits
[a-z]* # suffix
)*

(?: \s* [\):+] )? # maybe space and maybe close paren or colon or plus

# END multicode
)

( .*? ) # message (capture): everything ...

(?= # ... up to (but excluding) ...
# ... the next code

# BEGIN multicode

(?: \( \s* )? # maybe open paren and maybe space

# code
[A-Z]*H # prefix
\d+ # digits
[a-z]* # suffix

(?: # maybe followed by other codes,
\s* \+ \s* # ... plus-separated

# code
[A-Z]*H # prefix
\d+ # digits
[a-z]* # suffix
)*

(?: \s* [\):+] )? # maybe space and maybe close paren or colon or plus

# END multicode

# (but not when followed by punctuation)
(?! [^\w\s] )

# ... or the end
| $
)
"""
責任編輯:趙寧寧 來源: 未聞Code
相關推薦

2025-06-13 01:15:00

正則表達式大模型

2021-06-15 20:56:39

Python正則表達式

2020-12-17 06:22:57

交互模式代碼

2024-08-27 22:08:13

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2022-01-26 07:35:10

爬蟲Requestsgzip

2021-10-15 21:08:31

PandasExcel對象

2021-10-11 20:02:49

Python父類方法

2022-06-28 09:31:44

LinuxmacOS系統

2024-11-13 09:18:09

2021-04-05 14:47:55

Python多線程事件監控

2022-03-12 20:38:14

網頁Python測試

2021-03-18 23:28:45

Python反斜杠字符串

2025-05-28 03:15:00

Scrapy數據sleep

2021-04-12 21:19:01

PythonMakefile項目

2022-06-09 21:34:41

Python代碼函數

2024-12-27 00:44:44

MarkdownPrompt大模型

2023-10-28 12:14:35

爬蟲JavaScriptObject

2021-09-13 20:38:47

Python鏈式調用

2021-03-12 21:19:15

Python鏈式調用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品国自产在线 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 免费观看的黄色网址 | 韩国av电影网 | 午夜精品视频在线观看 | 日韩欧美网 | 视频一区 国产精品 | 91精品麻豆日日躁夜夜躁 | 亚洲精品一| 亚洲精品1 | 亚洲午夜在线 | 在线观看中文字幕 | 日韩欧美国产成人一区二区 | 日日人人| 欧美一区视频 | 九九激情视频 | 91在线视频免费观看 | 久久精品视频在线免费观看 | 天天操妹子 | 91污在线 | 最新日韩精品 | 国产真实精品久久二三区 | 欧美三级在线 | 国产精品久久久久久久久久三级 | 欧美日韩中文字幕在线 | 亚洲色欧美另类 | 日本视频一区二区 | 亚洲欧美中文日韩在线v日本 | 国产福利视频 | 九九热在线免费视频 | 国产精品国产成人国产三级 | 久久精品视频免费看 | 久久久久国产精品一区二区 | 久久精品国产清自在天天线 | 在线国产视频观看 | 日韩高清av | 国产国产精品 | 色婷婷精品国产一区二区三区 | 亚洲欧美日韩电影 | 久久久久免费精品国产小说色大师 | 日韩国产中文字幕 |