How to use JavaScript regex over multiple lines?
1 2 3 | var ss="[cc lang="javascript"]aaaa bbb ccc |
ddd";
var arr = ss.match(/
1 2 | /gm ); alert(arr); // null |
我希望可以拾取PRE块,即使它跨越换行符也是如此。 我以为'm'标志可以做到。 才不是。
发布前在这里找到答案。 因为我以为我知道JavaScript(读了三本书,花了很多时间),所以SO上没有现有的解决方案,所以无论如何我都敢发表。 在这里扔石头
所以解决方案是:
1 2 3 | var ss="[cc lang="javascript"]aaaa bbb ccc |
ddd";
var arr = ss.match(/
1 2 | /gm ); alert(arr); // [cc lang="javascript"]... |
:)
code> pre>
有谁有一个不太神秘的方式?
编辑:这是重复的,但是由于它比我的更难找到,因此我不会删除。
它建议
]
请勿使用
])而不是
请勿使用
另外,通过使用
请参阅我制定的基准测试:http://jsperf.com/javascript-multiline-regexp-workarounds
1 2 3 4 5 6 7 8 | Using [^]: fastest Using [\s\S]: 0.83% slower Using (.| | ): 96% slower Using (.|[ ]): 96% slower |
注意:您也可以使用
]
)
]))。
我已经对其进行了测试(Chrome),并且通过将
1 2 3 | var ss="[cc lang="javascript"]aaaa bbb ccc |
ddd";
var arr = ss.match(/
1 2 | /gm ); alert(arr); //Working |
除上述示例外,它是替代方案。
1 | ^[\\w\\s]*$ |
其中