javascript - 正则表达式中的元字符和括号

标签 javascript regex

谁能详细说明/翻译这个正则表达式成英文?

谢谢。

var g = "123456".match(/(.)(.)/);

我注意到输出看起来像这样:

12,1,2

我知道点表示除换行符外的任何字符。但这实际上有什么作用?

最佳答案

一对括号(没有 ? 作为第一个字符,表示其他行为)将捕获内容到一个组。

在您的示例中,数组中的第一项是整个匹配项,后续项是任何组匹配项。

如果你的代码是这样的话可能会更清楚:

var g = "123456".match(/.(.).(.)./);

这将匹配五个字符,将第二个和第四个字符分别放入第 1 组和第 2 组,因此输出 12345,2,4

如果您想要不捕获内容的纯分组,请使用 (?:...) 语法,?: 部分指示非捕获组。 (有各种各样的组合事物,例如前瞻和其他 fun stuff。)

让我知道是否清楚,或者进一步的解释是否有帮助?

关于javascript - 正则表达式中的元字符和括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3089193/

相关文章:

python - 匹配字符串中的最后一个数字

python - 用同一字符串中的单个单词替换字符串的一部分

regex - 仅将捕获组的结果与正则表达式匹配?

python - 在 Python 正则表达式 split() 中访问定界符

javascript - Jquery UI 自动完成委托(delegate)使用箭头键获得焦点

java - 如何在java spring MVC中为相应行插入按钮功能

javascript - 如何通过 Webpack 部署名称中带有哈希值的 Assets ?

javascript - 如何从数据资源管理器中删除 Rethinkdb 中表的元素?

javascript - 每 5 秒重新加载一次背景图片

c# - 正则表达式在正则表达式测试器中工作,但在 C# 中不起作用