对JavaScript Regex多行模式感到困惑
Confused about JavaScript Regex Multiline mode
对于Javascript来说还是很新鲜的,我很难使用多行regex。
正则表达式的边界通常为^
(表示行的开始)和$
(表示当前行的结束)。因此,我的正则表达式受到约束,只能在^
和$
之间运行。
现在在多行模式下,如何设置边界?我看了几个例子,它只是在躲避我
如果我的提要看起来像这个
Joe's item list
Item one is Abc
Item two is xyz
Item three is 123
End of Item List
我的典型正则表达式看起来像^Item ('w+) is ('w+)$
。
但我希望我的正则表达式只在开始行和结束行之间激发,并希望了解这是Joe的项目列表。我是不是只是在考虑这个问题,认为我应该使用多行regex?
您可以在带有m
修饰符的javascript中使用多行模式。全局g
修饰符表示它将返回一个包含所有匹配项的数组:
JSFiddle
/^Item ('w+) is ('w+)$/gm
我不知道你是如何使用正则表达式的,也不知道你认为使用多行正则表达式可能有问题是什么意思。。。但这可以在没有多行模式的情况下用这样的东西来模仿:
JSFiddle
/(?:^|'n)Item ('w+) is ('w+)(?='n|$)/g
如果你想退出捕获组,你可以这样做:
JSFiddle
var matches = []
var regex = /^Item ('w+) is ('w+)$/gm;
var match = null;
while (match = regex.exec(str)) {
matches.push({
itemNumber: match[1],
itemName: match[2]
});
}
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 包含圆括号的JavaScript Regex模式
- 用于操纵DOM API的Javascript设计模式
- 用javascript创建一个看起来正常分布的模式
- 揭示模块模式(JavaScript) - 这无法访问私有方法
- 匹配每个字符,直到在行首出现模式(JavaScript)
- 用于处理成功、失败、重试的异步请求的设计模式?(JavaScript)
- 模块模式javascript不是函数
- 从自定义模块模式Javascript库调用XMLHttpRequest时不会发生任何事情
- 浏览器中的观察者模式javascript:订阅事件"添加了Dom元素“;并处理这个元素
- IE11在Iframe下的怪癖模式-javascript错误
- 返回具有链接模式javascript的项
- 命令模式 JavaScript 中的执行函数
- gsp下拉值返回NaN在IE7文档模式(javascript)
- 动态模式Javascript
- 保持服务器时间,即使在离线模式(javascript/html5)
- 我如何专业地构建我的模块模式Javascript项目
- 怪癖模式 - JavaScript 不会更新表单选择选项
- 设计模式- JavaScript.安全提取深层(可能不存在)对象属性的通用函数