仅将粗体标记与正则表达式匹配

时间:2014-03-31 15:54:53

标签: regex

我正在尝试匹配<b>代码或<b style="....."> 通过使用像

这样的正则表达式
<(/)?(b)[^>]*>

它不仅匹配b标记,还匹配以b

开头的所有标记

3 个答案:

答案 0 :(得分:1)

尝试使用单词边界(\b):

<(/)?(b\b)[^>]*>

这可以确保<b之后的下一个字符不一定是&#39;&#39;字符(字母,数字或下划线)。

当然,这可能会匹配像<b-foo>这样的标签,这可能是一个问题。在这种情况下,我建议使用这样的前瞻:

<(/)?(b(?=[\s>]))[^>]*>

这可确保<b之后的下一个字符必须是空白字符或>

答案 1 :(得分:0)

你为什么不用这个:

/<\/?b.*?>/g

你的正则表达式:

/<(\/)?(b)[^>]*>/g

您可能希望根据使用语言的语法使用全局修饰符。我使用的是Javascript。

答案 2 :(得分:0)

在JavaScript中,要查找并替换所有<b> and </b>标记,您可以执行以下操作:

const myStr = '<b>Hello</b>';
myStr.replace(/<[/]?(b)>/gi, '');
console.log(myStr); // Outputs 'Hello' with the bold tags removed

希望能有所帮助。

相关问题