0

我在 JavaScript 中有这个字符串:

s = "</p><ol><li>First\n</li><li>Second\n</li></ol><p>"

然后我这样做(删除外部的“</p>...<p>”):

s = s.replace(/^<\/([^> ]+)[^>]*>(.*)<\1>$/,"$2");

什么都没有发生(s 没有改变,并且使用 match() 返回 false),但是如果我去http://www.regular-expressions.info/javascriptexample.html尝试它,它可以工作!

我已经尝试了各种方法(创建一个单独的 regExp 对象,使用 //g,取出 ^$,将 [^> ]+ 替换为 [a-z0-9]*...),但没有任何区别.

它快把我逼疯了。谁能告诉我我做错了什么?

4

1 回答 1

1

问题只是.不匹配换行符\n

如果您将 替换为.*[\s\S]*您的正则表达式应该可以工作。

[\s\S]表示匹配任何空格或非空格字符,相当于匹配任何字符。

于 2013-03-14T12:05:35.593 回答