正規表示式一點迷惑

2021-09-08 07:31:08 字數 773 閱讀 9148

正規表示式很強大,當然,也很複雜,我看到有本書專門講這個,不過內容沒看,沒耐心。我看的是:《30分鐘精通正規表示式》。

當然,訖今已經不知道看了多少個30分鐘了,還是搞不懂一些基本問題,比如這個:

var match = regex.match("0px", @"^0|\d+px$";

console.writeline(match.value);

結果輸出0,為什麼不是0px呢?如果將pattern倒過來"^\d+px\0$",就可以匹配0px。

如同.net中的指標運用一樣,掌握正規表示式好像還是乙個高階的程式設計技能,有兩三年經驗的程式設計師,連掌握基本語法的都很少。其實學一點正則很有用,但深入下去看來不是那麼容易。

還有那些group/capture,還有各種元組之類概念,這些的原理和應用都講清楚,恐怕真得有一本書。表示式可以搞得非常複雜,比如像vspaste外掛程式中用的表示式(讓vspaste支援貼上的中文),應該是很牛的人寫的。不過一般人用起來,既難懂又難維護,我想這種情況下,還不如自己寫寫查詢的**。

有時間學習一下.net中正規表示式的相關源**,一定會很有幫助。繼續深入研究最普通又最深奧的文書處理!

補充:終於明白了,原來是因為 | 符號優先順序最高。"^repeat(?:-x|-y)?|no-repeat$"匹配"**no-repeat"依然成功,應該在|兩邊的表示式各加上起止符號,或將起止符中間的表示式括起來。

.net中有乙個regexoptions選項explicitcapture列舉值,可以省去?:,只捕獲有命名的分組。

對python的正規表示式一點理解

剛開始入門,很多東西不明白。把這些可能很傻瓜式的不明白寫下來。問題1 在寫pattern時為什麼字串前面要加個r,其實也就是這個問題,那不加r是不是也可以。就是不知道加r有什麼作用。在python有乙個擁有全部功能的正規表示式物件,函式為re.compile pattern,flags 我尋求方便,...

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 一

若你使用過windows dos下用於檔案查詢的萬用字元,也就是 和?如果你想查詢某個目錄下的所有的word文件的話,你會搜尋 doc。會被解釋成任意的字串。和萬用字元類似,正規表示式也是用來進行文字匹配的工具,只不過比萬用字元更能精確地描述你的需求。比如你可以編寫乙個正規表示式來查詢所有以0開頭,...