使用elisp regex匹配模式和获取参数值返回nil

时间:2015-01-18 04:19:31

标签: regex emacs elisp

这是我的代码声明

var myStr = require('ssh2')

如果语句有require func调用,我的elisp正则表达式必须返回arg值。

 (let ((s "var myStr = require('ssh2')"))
   (if (string-match "'require(\\([^']+\\)'" s)
       (match-string 1 s)))

然后返回nil? 是什么让我的正则表达成一团糟?某人?

1 个答案:

答案 0 :(得分:1)

怎么样?:

"require\(\\(?:'\\(.*\\)'\\)\)"

如果您还没有使用M-x re-builder RET,那么您将会喜欢它。

以下是我最喜欢的关于非捕获组的一个主题的链接:

What is a non-capturing group? What does a question mark followed by a colon (?:) mean?