使用 elisp 正则表达式匹配模式和抓取参数值 returns nil

Match pattern and grab argument value using elisp regex returns nil

这是我的代码声明

var myStr = require('ssh2')

我的 elisp 正则表达式必须 return arg 值当且仅当该语句具有 require func 调用。

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

这 return 是零,但是? 是什么让我的正则表达式变得一团糟?

怎么样?:

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

如果您还没有玩过 M-x re-builder RET,您会喜欢的。

这里是 link 我最喜欢的关于非捕获组的线程之一:

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