成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

用中文API讓正則表達式更易讀寫的方法是什么

這篇文章主要講解了“用中文API讓正則表達式更易讀寫的方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“用中文API讓正則表達式更易讀寫的方法是什么”吧!

我們提供的服務有:成都做網站、成都網站制作、微信公眾號開發(fā)、網站優(yōu)化、網站認證、遠安ssl等。為成百上千企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的遠安網站制作公司

Python實現:

標識符:r'\$?[_a-zA-Z\u4e00-\u9fa5][_a-zA-Z0-9\u4e00-\u9fa5]*'  

雙引號字符串: r'(\")((?<!\\)\\\1|.)*?\1'

字符串插值相關:r'\\\(([^\\\)]*)\\\)|`([^`]*)`'

由此想到是否有 API 能夠構建正則表達式。找到 PythonVerbalExpressions,它首頁上一個示例如下:

verbal_expression.
start_of_line().
find('http').
maybe('s').
find('://').
maybe('www.').
anything_but(' ').
end_of_line()

對應正則: ^(http)(s)?(\:\/\/)(www\.)?([^\ ]*)$

看起來的確比較可讀,而且如果改為中文 API 的話,命名會更簡短:

開頭().
尋找('http').
或許('s').
尋找('://').
或許('www.').
除了(' ').
結尾()

問題是這個庫的功能似乎有限,僅支持小部分正則語法,于是考慮改進。

設想中的 API 示例

以開頭的木蘭實現中的幾個正則為例,用設想中的 API 表達后進行對比

標識符:

至多一個("$").一個("_", 大小寫英文, 中文).任意個("_", 大小寫英文, 數字, 中文)

原始正則表達式對比:r'\$?[_a-zA-Z\u4e00-\u9fa5][_a-zA-Z0-9\u4e00-\u9fa5]*'

雙引號字符串:

分組(雙引號)
  .最小匹配(
    任意個(
      分組(
        皆可(
          前面不是(反斜杠).一個(反斜杠).一個(引用分組(1)),
          一個(非換行字符))
      )
    )
  )
  .引用分組(1)

r'(\")((?<!\\)\\\1|.)*?\1'

字符串插值相關:

皆可(
  一個(反斜杠).一個(左小括號).分組(任意個(不是(反斜杠, 右小括號))).一個(反斜杠).一個(右小括號),
  一個(反引號).分組(任意個(不是(反引號))).一個(反引號)
)

r'\\\(([^\\\)]*)\\\)|`([^`]*)`'

相對原始正則表達式,在可讀性之外還有幾個優(yōu)勢:

  • 不需為正則的特殊意義字符加反斜杠,如 \,(,) 等

  • 明確運算優(yōu)先級,比如雙引號字符串中的 | 和 (?<!)...

在易寫方面,相對于正則的符號語法,API 語義更加直白。

感謝各位的閱讀,以上就是“用中文API讓正則表達式更易讀寫的方法是什么”的內容了,經過本文的學習后,相信大家對用中文API讓正則表達式更易讀寫的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

本文名稱:用中文API讓正則表達式更易讀寫的方法是什么
文章起源:http://jinyejixie.com/article46/jdoieg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供商城網站、外貿建站、標簽優(yōu)化、移動網站建設、微信小程序、網站設計

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網站優(yōu)化
全椒县| 漯河市| 永宁县| 崇信县| 泗洪县| 即墨市| 霍山县| 拜泉县| 昌黎县| 湾仔区| 株洲县| 永泰县| 延庆县| 宜阳县| 辽阳县| 迭部县| 安福县| 新巴尔虎左旗| 万安县| 昌宁县| 河间市| 远安县| 卢龙县| 凤阳县| 中牟县| 葵青区| 元谋县| 遵化市| 安平县| 响水县| 公主岭市| 枣阳市| 枣阳市| 莲花县| 莲花县| 霍州市| 堆龙德庆县| 西乌珠穆沁旗| 瑞金市| 安达市| 新干县|