正则表达式执行仅返回第一个匹配项

用户181351:

我正在尝试实现在golfscript语法页面上找到的以下正则表达式搜索

var ptrn = /[a-zA-Z_][a-zA-Z0-9_]*|'(?:\\.|[^'])*'?|"(?:\\.|[^"])*"?|-?[0-9]+|#[^\n\r]*|./mg;
input = ptrn.exec(input);

输入仅是正则表达式的第一个匹配项。例如:"hello" "world"应该返回,["hello", "world"]但仅返回["hello"]

戳 :

RegExp.exec一次只能返回一个匹配结果。

为了检索多个匹配项,您需要exec在表达式对象上多次运行例如,使用简单的while循环:

var ptrn = /[a-zA-Z_][a-zA-Z0-9_]*|'(?:\\.|[^'])*'?|"(?:\\.|[^"])*"?|-?[0-9]+|#[^\n\r]*|./mg;

var match;
while ((match = ptrn.exec(input)) != null) {
    console.log(match);
}

这会将所有匹配项记录到控制台。

请注意,为了使此工作有效,您需要确保正则表达式具有g(全局)标志该标志确保在表达式上执行某些方法后,lastIndex属性会更新,因此上一个结果之后将开始进一步的调用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅匹配正则表达式行中的第一个匹配项

C#中的正则表达式仅返回第一个匹配项

正则表达式仅捕获第一个匹配项

仅替换全局正则表达式的第一个匹配项

使用正则表达式仅抓取图案的第一个匹配项

如何使此正则表达式仅找到第一个匹配项

pcregrep如何强制返回正则表达式的第一个匹配项

python正则表达式,只返回第一个匹配项

Bash grep不返回第一个正则表达式匹配项

正则表达式匹配器仅返回第一个结果

正则表达式-返回引用以匹配完全匹配的第一个匹配项

如何仅获得正则表达式Grok过滤器的第一个匹配项

python3 glob.glob正则表达式仅获得第一个匹配项

是否可以保证正则表达式搜索返回第一个匹配项?

正则表达式,在特定单词/Python 之后返回第一个匹配项

C ++正则表达式替换第一个匹配项

正则表达式:跳过组中角色的第一个匹配项?

正则表达式 - 从 Javascript 代码中选择第一个匹配项

python正则表达式仅匹配第一个实例

正则表达式:仅匹配值的第一个实例

正则表达式:仅匹配模式的第一个实例

正则表达式仅解析第一个匹配的 json 对象

正则表达式仅扫描返回第一个值

返回第一个匹配正则表达式的字符串

python正则表达式,只返回第一个数字匹配

取得一个正则表达式文件,然后在另一个文件中返回每个文件的第一个匹配项

仅解析具有多个匹配项的行中的第一个正则表达式匹配项

正则表达式仅返回一个匹配项

正则表达式LookAhead限制为一个(或第一个匹配项)