lisp正規表示式可以用多個第三方的包,cliki推薦是cl-ppcre這個包.在**中寫正規表示式可以用cl-interpol這個包方便轉義
如果要匹配一對括號不用cl-interpol,需要寫成
"\\(\\)"
借助cl-interpol只需下面的寫法
cl-user> #?r"\(\)"
"\\(\\)"
cl-user> (cl-ppcre:scan-to-strings #?r"\(\)" "()")
"()"
#()
scan-to-stringcl-user> (cl-ppcre:scan-to-strings #?r"(abc)" "0123abcdef")
"abc"
#("abc")
scancl-user> (cl-ppcre:scan #?r"(abc)" "0123abcdef")47
#(4)
#(7)
do-scanscl-user> (cl-ppcre:do-scans (s e rs rg #?r"a(.)c" "a1c a2c a3c a4c")
(format t "start:~a end:~a reg-start:~a reg-end:~a~%" s e rs rg))
start:0 end:3 reg-start:#(1) reg-end:#(2)
start:4 end:7 reg-start:#(5) reg-end:#(6)
start:8 end:11 reg-start:#(9) reg-end:#(10)
start:12 end:15 reg-start:#(13) reg-end:#(14)
nil
do-matches-as-stringscl-user> (cl-ppcre:do-matches-as-strings (m #?r"a(.)c" "a1c a2c a3c a4c")
(format t "~a~%" m))
a1ca2c
a3ca4c
nil
正規表示式示例
表示式匹配 s 匹配空行。d d 驗證由兩位數字 乙個連字元再加 5 位數字組成的 id 號。s s s s s s 1 s 匹配 html 標記。下表包含了元字元的完整列表以及它們在正規表示式上下文中的行為 字元說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n...
正規表示式示例
匹配 s 匹配空行。d d 驗證由兩位數字 乙個連字元再加 5 位數字組成的 id 號。s s s s s s 1 s 匹配 html 標記。下表包含了元字元的完整列表以及它們在正規表示式上下文中的行為 說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n n 匹配...
正規表示式 示例
正規表示式的最簡單形式是在搜尋字串中匹配其本身的單個普通字元。例如,單字元模式,如 a,不論出現在搜尋字串中的何處,它總是匹配字母 a。下面是一些單字元正規表示式模式的示例 a 7 m 可以將許多單字元組合起來以形成大的表示式。例如,以下正規表示式組合了單字元表示式 a 7 和 m。a7m 請注意,...