lisp 正規表示式示例

2021-09-23 23:31:39 字數 1120 閱讀 2347

lisp正規表示式可以用多個第三方的包,cliki推薦是cl-ppcre這個包.在**中寫正規表示式可以用cl-interpol這個包方便轉義

如果要匹配一對括號不用cl-interpol,需要寫成

"\\(\\)"
借助cl-interpol只需下面的寫法

cl-user> #?r"\(\)"

"\\(\\)"

cl-user> (cl-ppcre:scan-to-strings #?r"\(\)" "()")

"()"

#()

scan-to-string
cl-user> (cl-ppcre:scan-to-strings #?r"(abc)" "0123abcdef")

"abc"

#("abc")

scan
cl-user> (cl-ppcre:scan #?r"(abc)" "0123abcdef")47

#(4)

#(7)

do-scans
cl-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-strings
cl-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 請注意,...