我在JavaScript中有这个字符串:
s = "</p><ol><li>First\n</li><li>Second\n</li></ol><p>"
然后我这样做(删除外部的“&lt; / p&gt; ...&lt; p&gt;”):
s = s.replace(/^<\/([^> ]+)[^>]*>(.*)<\1>$/,"$2");
没有任何反应(s未更改,并且使用match()返回false),但是如果我在http://www.regular-expressions.info/javascriptexample.html尝试它,它就可以了!
我尝试了各种各样的事情(创建一个单独的regExp对象,使用// g,取出^ $,用[a-z0-9] *替换[^&gt;] + ...)但是没有任何区别。
这让我疯了。谁能告诉我我做错了什么?
答案 0 :(得分:1)
问题很简单,.
与换行符\n
不匹配。
如果您将.*
替换为[\s\S]*
,那么您的正则表达式应该可行。
[\s\S]
表示匹配任何空格或非空格字符,相当于匹配任何字符。