使用 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?
这是我的代码声明
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?