ELisp程式設計十一 正規表示式一

2021-08-26 21:23:51 字數 1071 閱讀 8517

互動式編寫正規表示式

比如buffer中有乙個字串

abcd 3

執行命令:

m-x:re-builder

會出現乙個小buffer,在雙引號裡面輸入正規表示式d ,上面有字串的buffer馬上高亮d字元,如果輸入3,則高亮3字元。

特殊字元

參考文件:

'.' 代表任意乙個字元(除了換行符),因此"a.c"能夠匹配abcd 3中的abc

'*' 代表前面的字元(串)可以重複》=0次

比如"e*"在re-builder中也能匹配abcd 3,其實這容易引起混亂,一般不要這樣使用。

而且如果多個字元後面跟*的話,只要能匹配乙個字元都算,這個玩意兒真不知道用在何處,感覺就是怎麼都匹配。

建議盡量不要用這個。

如果*用在最前面,只能代表是普通字元,同樣情況適用於+和?,一句話,特殊字元如果用在不可能出現的場合,只能被當作普通字元。

'+' 代表前面的字元(串)必須出現至少一次

比如"bc+d"匹配上面的字串abcd 3

'?' 代表前面的字元(串)出現一次或者0次

'^' 匹配字串開頭

'&' 匹配字串結尾

[...] 裡面可以包括若干字元,只要匹配其中之一即可

比如字串abcd 3 ab

用正則"[bc]",匹配到三個,分別是b c 和最後乙個b

[^...] 表示不能是裡面包含的任何字元

\ 代表後面的特殊字元在這裡只是普通字元

注意,如果要匹配字串中的\字元,需要四個\,比如:abcd 3 ab\ ef

正規表示式寫法:"\\\\"

首先因為elisp字串寫法中,雙引號裡面的\不顯示,要想顯示出來必須是兩個\

然後正規表示式語法中\是特殊字元,\\才能表示乙個\,

因此"\\\\"就是代表邏輯上的正規表示式"\\",因此也就匹配了字元\

'*?' '+?' '??' 和'*' '+' '?' 功能相近,只是非貪婪匹配,只匹配最合適的乙個。

java基礎(十一) 正規表示式

本文在閱讀一位大牛博主寫的一篇文章後,感覺深受其用,在此做個筆記總結學習一下,大牛博主位址為 在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的工具。換句話說,正規表示式就是記錄文字規則的 入門例子 例子1 假設你在一篇英文 裡查詢hi,你可以使...

二十一 正規表示式

正規表示式簡介 概念 正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元 及這些特定字元的組合,組成乙個 規則字串 這個 規則字串 用來表達對字串的一種過濾邏輯 可以用來做檢索,擷取或者替換操作 作用 1.給定的字串是否符合正規表示式的過濾邏輯 稱作 匹配 2.可以通過正規表示式,...

一 正規表示式基礎

正規表示式是一種用來匹配字串的強有力的 設計思想是用一種描述性的語言來給字串定義乙個規則,凡是符合規則的字串,就認為它 匹配 否則就不匹配。行定位符用來描述字串的邊界。表示行的開始,表示行的結束。例如 若要匹配以am開頭的字串,則是 am 若要匹配以am結尾的字串,則是am 其中 放在方括號裡,表示...