這篇文章主要講解了“用中文API讓正則表達式更易讀寫的方法是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“用中文API讓正則表達式更易讀寫的方法是什么”吧!
我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、遠安ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的遠安網(wǎng)站制作公司
Python實現(xiàn):
標(biāo)識符:r'\$?[_a-zA-Z\u4e00-\u9fa5][_a-zA-Z0-9\u4e00-\u9fa5]*' 雙引號字符串: r'(\")((?由此想到是否有 API 能夠構(gòu)建正則表達式。找到 PythonVerbalExpressions,它首頁上一個示例如下:
verbal_expression. start_of_line(). find('http'). maybe('s'). find('://'). maybe('www.'). anything_but(' '). end_of_line()對應(yīng)正則:
^(http)(s)?(\:\/\/)(www\.)?([^\ ]*)$
看起來的確比較可讀,而且如果改為中文 API 的話,命名會更簡短:
開頭(). 尋找('http'). 或許('s'). 尋找('://'). 或許('www.'). 除了(' '). 結(jié)尾()問題是這個庫的功能似乎有限,僅支持小部分正則語法,于是考慮改進。
設(shè)想中的 API 示例
以開頭的木蘭實現(xiàn)中的幾個正則為例,用設(shè)想中的 API 表達后進行對比
標(biāo)識符:
至多一個("$").一個("_", 大小寫英文, 中文).任意個("_", 大小寫英文, 數(shù)字, 中文) 原始正則表達式對比:r'\$?[_a-zA-Z\u4e00-\u9fa5][_a-zA-Z0-9\u4e00-\u9fa5]*'雙引號字符串:
分組(雙引號) .最小匹配( 任意個( 分組( 皆可( 前面不是(反斜杠).一個(反斜杠).一個(引用分組(1)), 一個(非換行字符)) ) ) ) .引用分組(1) r'(\")((?字符串插值相關(guān):
皆可( 一個(反斜杠).一個(左小括號).分組(任意個(不是(反斜杠, 右小括號))).一個(反斜杠).一個(右小括號), 一個(反引號).分組(任意個(不是(反引號))).一個(反引號) ) r'\\\(([^\\\)]*)\\\)|`([^`]*)`'相對原始正則表達式,在可讀性之外還有幾個優(yōu)勢:
不需為正則的特殊意義字符加反斜杠,如 \,(,) 等
明確運算優(yōu)先級,比如雙引號字符串中的 | 和 (?
在易寫方面,相對于正則的符號語法,API 語義更加直白。
感謝各位的閱讀,以上就是“用中文API讓正則表達式更易讀寫的方法是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對用中文API讓正則表達式更易讀寫的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!