呵。这个问题不错呢。。 <script type="text/javascript"> var s = "abc#123\\#456"; var j = /(?:(?:[^#]|\\#)(?!#|$))+./g; alert(s.match(j)); </script>
精简形式的识字。。 var j = /([^#\\]|\\#|\\)+/g;
var str="abc#123\#456"; var arr=str.split(/正则表达式/); 正则表达使该如何写,能将 "abc#123\#456" split成数组[abc, 123\#456]
如果一定要用split,就要绕一下了。 <script type="text/javascript"> var s = "abc#123\\#456"; s = s.replace(/([^\\])#/g,"$1 "); var arr=s.split(" "); for (var i=0;i<arr.length;i++) { alert(arr[i])+"\n"; } </script>
</script> <script language=javascript> var s = "abc#123\\#456"; alert(s.split(/#(?=123)/g)) //alert(s.split(/(?:[^\\])#/g)) </script> 对于alert(s.split(/(?:[^\\])#/g)) 为啥出来是 "ab,123\\#456"; (?:pattern)不是一个非匹配捕获么?怎么就少了一个c??
<script type="text/javascript">
var s = "比如12\#12\$12#12$";
alert(s.replace(/\\(#|\$)/g, "$1"));
alert(s.split(/\\(?=#|\$)/g).join(""));
</script>
<script type="text/javascript">
var s = "abc#123\\#456";
var j = /(?:(?:[^#]|\\#)(?!#|$))+./g;
alert(s.match(j));
</script>
var j = /([^#\\]|\\#|\\)+/g;
var arr=str.split(/正则表达式/);
正则表达使该如何写,能将 "abc#123\#456" split成数组[abc, 123\#456]
<script type="text/javascript">
var s = "abc#123\\#456";
s = s.replace(/([^\\])#/g,"$1 ");
var arr=s.split(" ");
for (var i=0;i<arr.length;i++)
{
alert(arr[i])+"\n";
}
</script>
<script language=javascript>
var s = "abc#123\\#456";
alert(s.split(/#(?=123)/g))
//alert(s.split(/(?:[^\\])#/g))
</script>
对于alert(s.split(/(?:[^\\])#/g))
为啥出来是 "ab,123\\#456"; (?:pattern)不是一个非匹配捕获么?怎么就少了一个c??
能解释下为啥(?:[^\\])就少了一个c?