我正在尝试替换一些以点开头并以点或等号结尾的文本。例如a.test=3
。我想用a['test']=
替换它(从Matlab转换为Python)。
我测试了Emacs Lisp中的looking-at
函数:
(defun test-la ()
(interactive)
(when (looking-at "\\.\\(.*?)\\)[=.]")
(message "ok")))
但是当点在点上时,它没有显示"ok"
..
答案 0 :(得分:4)
我自己从不使用它,但很多人发现re-builder
对于编写正则表达式非常有用。另一种选择是使用rx
,它使用Lisp-ish语法,这种语法不那么简洁,但也不那么神秘。
答案 1 :(得分:3)
你的正则表达式中有一个额外的括号。您目前拥有的那个匹配a.test)=3
。试试这个:
(looking-at "\\.\\(.*?\\)[=.]")