说我有字符串Hello {{name}}, how are you doing today?
我试图从该字符串抓name
。我们有/\{{2}[a-z0-9]*\}{2}/gi
。问题是,它抓住{{name}}
而不是name
。没有全局标志,它工作正常,但我试图让每个单词的实例在双括号内,所以它不是很正确......我不是正则表达式专家,所以我希望有人能帮助我... ...一个(简单的?)RegEx问题的全球非捕获组
2
A
回答
4
最好的解决方案是使用lookaround断言,以便{{
和}}
不会被拾取,但JavaScript正则表达式不支持倒序,它只支持lookahead。
那么一个选择是你的文字放在一个捕获组,并抓住里面是什么:
/\{{2}([a-z0-9]*)\}{2}/gi
让每一个捕捉,使RegExp
对象与您正则表达式,并通过其exec()
函数的结果迭代。例如:
var str = 'Hello {{name}}, how are you doing {{date}}?';
var re = /\{{2}([a-z0-9]*)\}{2}/gi;
var words = [];
var match;
while (match = re.exec(str)) {
words.push(match[1]);
}
或者像浓汤建议在他的评论,手动从比赛的阵列剥离出{{
和}}
。
0
是啊如所提到的,模式匹配对2开闭括号是要走的途径(假设名字不具有内本身在2号的连续的大括号,无论是开/关)
/\{{2}([a-z0-9]+)*\}{2}/gi
相关问题
- 1. 问题的简单的regex
- 2. 简单的regex问题
- 3. 简单的regex问题
- 4. 关于数组的一个非常简单的问题
- 5. PHP简单的regex的问题
- 6. 的.htaccess重写简单的regex问题
- 7. 遇到一个非常简单的PHP数组问题
- 8. 带有捕获组的RegEx中的空白问题
- 9. 捕获全球Keydown事件(不简单观察)
- 10. RegEx的另一个问题
- 11. 非常非常简单的MVVM问题
- 12. 非捕获组内的捕获组
- 13. Ruby正则表达式,只有一个捕获(非常简单!)
- 14. 一个非常简单的正则表达式的问题
- 15. 运行一个非常简单的Python程序的问题
- 16. 简单的组装问题
- 17. 这个真正简单的RegEx表达式有什么问题?
- 18. QEventfilter类的全球事件捕获
- 19. JS RegEx替换未捕获的组?
- 20. 一个非常简单的SSRS 2008问题
- 21. 一个非常简单的C++ OOP问题
- 22. C/C++链接问题与一个非常简单的设置
- 23. 简单的regex不
- 24. 非常简单的io问题C++
- 25. php-sprintf非常简单的问题
- 26. 非常简单的Ajax问题
- 27. 非常简单的PHP添加问题
- 28. 从条件REGEX获取捕获组
- 29. 关于wxPython的一个简单问题
- 30. 另一个简单的jQuery问题
令人惊讶的对我,但是这并不工作,因为OP说,因为/ g标志的。它基本上没有区别。我想这是因为JavaScript如何处理正则表达式;在Perl中它会正常工作。 – 2011-01-20 15:21:47