【发布时间】:2015-09-26 16:23:54
【问题描述】:
我正在尝试解析 robots.txt 文件,我想获取字符之间的所有内容:User-agent: 和 \n,我正在使用以下正则表达式:
/User-agent: (.*)\n/g
这个正则表达式的唯一捕获组是 (.*),它捕获除换行符之外的每个字符,但是当我运行时:
var exampleString = 'User-agent: example\n'
var matches = exampleString.match(/User-agent: (.*)\n/g);
matches[0] 是 User-agent: example\n。匹配不应该只返回捕获组而不是正则表达式中的所有内容吗?我也尝试过使用这样的非捕获组:/(?:User-agent: )(.*)(?:\n)/g,同样的事情发生了。
如何只捕获User-agent: 之后和\n 之前的名称?
【问题讨论】:
-
你看到的是正常的 match() 行为。请RTFM.
-
/User-agent: (.*)\n/g.exec(exampleString)返回一个数组[ "User-agent: example ", "example" ] -
这些答案是否解决了您的问题?如果是这样,请通过选中该答案左侧的绿色复选标记将最佳答案标记为已接受答案,以向社区表明您的问题已得到解答,然后您和提供答案的人都将获得一些声誉积分这可以在 StackOverflow 上获得更多特权。
标签: javascript regex