成人免费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-11 20:02:49

Python父類方法

2021-10-15 21:08:31

PandasExcel對象

2021-03-18 23:28:45

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測試

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大模型

2021-05-10 19:07:18

冗余代碼Python

2023-10-28 12:14:35

爬蟲JavaScriptObject

2021-09-13 20:38:47

Python鏈式調用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91九色在线观看 | 欧美不卡视频 | 伊人网站 | 亚洲国产18| 日韩精品一区二区久久 | 中文字幕日韩欧美一区二区三区 | 99久久精品国产一区二区三区 | 精品乱码一区二区三四区视频 | 一级毛片视频 | 成人黄色电影在线播放 | 国产一区二区影院 | 欧美日韩高清在线一区 | 黑人精品欧美一区二区蜜桃 | 一级网站| 国产福利91精品 | 中文成人无字幕乱码精品 | 国产精品国产三级国产aⅴ原创 | 欧美日韩亚洲视频 | 亚洲精品无 | 在线一区视频 | av免费网站在线观看 | 五月婷婷丁香婷婷 | 精品日韩一区二区 | 天天天天天天天干 | av网站免费在线观看 | 国产精品99久久久久久动医院 | 亚洲激情第一页 | 日韩精品网站 | 欧美午夜精品久久久久免费视 | 日本小视频网站 | 亚洲国产精品一区二区第一页 | 亚洲欧美国产精品久久 | 老司机深夜福利网站 | 成人在线免费观看 | 国产高清久久 | 国产这里只有精品 | 欧美乱码精品一区二区三区 | 国产一区二区三区视频在线观看 | 日本二区| 人人艹人人 | 久久男人 |