我正在尝试用Common Lisp重写一个AWK脚本(作为一种学习练习)
我需要这样的东西:
(str:string-case field
("FODL.*" (do something)))
(尝试匹配正则表达式"FODL.*"对于一个字段)
根据翻译的脚本复杂性,您可以使用像cond
+ ppcre这样简单的东西,或者更复杂的东西,比如琐事模式匹配,它也有基于ppcre的模式贡献:
(ql:quickload :cl-ppcre)
(ql:quickload :trivia)
(ql:quickload :trivia.ppcre)
(use-package '(:trivia :trivia.ppcre))
(match "other"
((ppcre "som[e|a].") :some)
((ppcre "^oth") :other))
;;=> :OTHER
(match "some"
((ppcre "som[e|a].") :some)
((ppcre "^oth") :other))
;;=> NIL
(match "something"
((ppcre "som[e|a].") :some)
((ppcre "^oth") :other))
;;=> :SOME