我在Ruby中有这个正则表达式:http://rubular.com/r/eu9LOQxfTj
/<sometag>(.*?)<\/sometag>/im
Run Code Online (Sandbox Code Playgroud)
它成功匹配输入如下:
<sometag>
123
456
</sometag>
Run Code Online (Sandbox Code Playgroud)
哪会回来
123
456
Run Code Online (Sandbox Code Playgroud)
但是,当我在javascript(在chrome中测试)中尝试此操作时,它与任何内容都不匹配.javascript的多行标志是否意味着别的什么?
我想在两个给定标签之间非贪婪地捕获所有内容.如何使用正则表达式在javascript中完成此操作?这是一个Debuggex演示
<sometag>(.*?)<\/sometag>
Run Code Online (Sandbox Code Playgroud)

这不是XML解析.
.单独使用时,Javascript不支持多行表达式.你必须用[\s\S]它代替.一个满足你想要的例子:
var x = "<sometag>\n\
123\n\
456\n\
</sometag>";
var ans = x.match(/<sometag>([\s\S]*?)<\/sometag>/im).pop();
// ans equals " 123 456"
Run Code Online (Sandbox Code Playgroud)
请注意,您仍然需要m修改器.
| 归档时间: |
|
| 查看次数: |
1304 次 |
| 最近记录: |