使用JavaScript查找每一行中的模式
Find pattern in every line with JavaScript
假设我有以下字符串
def name1
toSomething
def name2
toSomethingElse
我怎样才能找到name1
和name2
。
使用string.match(/(?:def) (.*)/)
给我:
name1
toSomething
def name2
toSomethingElse
那么我如何逐行搜索字符串呢?
您可以尝试使用:
/(?:def)'s+([^'s]+)/g
在第一组中,您将获得所需的内容(name1
等)。
请参见此处:http://regex101.com/r/rH0yH8
如何运行它的示例:
var s = "def name1'ntoSomething'n'ndef name2 'ntoSomethingElse"
var re = /(?:def)'s+([^'s]+)/g
while (x = re.exec(s)) {
alert(x[1])
}
/^def (.*)/gm
g
标志匹配每个实例,m
标志使^
在行的开头匹配,而不是仅在输入的开头匹配。
使用.exec
,您可以循环并一次获得一个结果。
var myString = 'def foo'n boo'n'ndef bar'n far'n';
for (var re = /^def (.*)/gm, match; (match = re.exec(myString));) {
alert(match[1]);
}
或者,您可以在字符串上使用.match
来获得一个数组中的所有结果,但这并不能为您提供捕获组。
var myString = 'def foo'n boo'n'ndef bar'n far'n';
var re = /^def (.*)/gm;
var matches = myString.match(re);
您的正则表达式应该只在第一行给出匹配项,因为.
与换行符不匹配。
也就是说,尝试/(?:def)'s+('S*)/
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- 动态插入的表:JQuery未检测到最后一行
- D3.js模式不适用于弧形或圆环图
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 模块模式和这个
- 在表格最后一行(链接)中显示菜单,并在单击菜单项时显示模式窗口
- 如何将以特定模式开头的每一行转移到字符串的末尾
- 尝试检测网格视图的哪一行处于编辑模式,然后在选中复选框字段时调整文本框
- 如何使用一行javascript构建器模式
- jqGrid客户端验证模式在编辑最后一行时没有正确放置
- 在同一行中匹配多个模式
- 用重复的模式替换一行正则表达式
- 在远程调试模式下,Javascript停在没有断点的一行
- 使用JavaScript查找每一行中的模式