javascript - 正则表达式不起作用

标签 javascript regex expression

我在 Javascript 中使用以下正则表达式:

comment_body_content = comment_body_content.replace(
  /(<span id="sc_start_commenttext-.*<\/span>)((.|\s)*)(<span id="sc_end_commenttext-.*<\/span>)/,
  "$1$4"
);

我想在我的 HTML 代码中找到此标签 <span id="sc_start_commenttext-330"></span> (数字总是不同的)和标签 <span id="sc_end_commenttext-330"></span> 。然后这些标签之间的文本和 HTML 代码应该被删除并返回。

替换前的示例:

Some text and code
<span id="sc_start_commenttext-330"></span>Some text and code<span id="sc_end_commenttext-330"></span>
Some Text and code

替换后的示例:

Some text and code
<span id="sc_start_commenttext-330"></span><span id="sc_end_commenttext-330"></span>
Some text and code

有时我的正则表达式可以工作,并且可以正确替换文本,有时则不能 - 是否有错误?谢谢您的帮助!

亚历克斯

最佳答案

您应该使用将开头与其相应结尾相匹配的模式,例如:

/(<span id="sc_start_commenttext-(\d+)"><\/span>)[^]*?(<span id="sc_end_commenttext-\2"><\/span>)/

这里结束标签中的\2指的是(\d+)的匹配字符串,它与开始标签中的数字330相匹配。 [^]任何字符的简单表达式。

关于javascript - 正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13789105/

相关文章:

javascript - Onclick Bootstrap 按钮

php - 将字符串的第一个字母大写(前面有特殊字符)- PHP

regex - 保留 PERL REGEX 中的浮点值以进行计算

c# - 正则表达式按目标字符串拆分到某个字符

c# - 使用正则表达式删除字符前后的空格

java - 将变量/数组与表达式分开,并删除重复项?

javascript - 在应用程序数据中存储和检索 WinJS.Binding.List

javascript - webRTC 音频只能以一种方式工作

javascript - 回收for循环?

java - Proguard 和 lambda 表达式