谁能详细说明/翻译这个正则表达式成英文?
谢谢。
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/