正则表达式:搜索并换行字符'(关于a)'带有'<b>$1</b>'在一句

Regular expression: search for and wrap characters '(re.a)' with '<b>$1</b>' in a sentence

本文关键字:lt gt 一句 搜索 换行 字符 正则表达式 关于 带有      更新时间:2023-09-26

我有一个句子,它包含以下内容:

"我是一个很长的句子"

现在我在JavaScript中搜索一个正则表达式(或意思),以便能够在该句子中搜索,例如以下任何组合:"ng"、"(ng."、"ng.a"、"long("、"ng.a)"等。

我希望能够通过用"<b></b>"标记包装找到的文本来突出显示它。给定搜索可能有不止一个实例,因此例如,如果您搜索字母"e",则字母"e’的所有出现都会将"<b></b>"包裹起来,使其成为"<b>e</b>"。

如果你键入字母"ng.a"也是如此,因为只有1次出现这种情况,那么它就会被包装成"<b>ng.a</b>"。

如何使用正则表达式执行此操作?

非常感谢您提前对此提供的帮助。

(为澄清问题而进行的修订)

二次修正案。。。请阅读

我找到了一个正则表达式,它与我想要的非常接近,代码是:

var words = 'this is a ng. word (ng.a)' 
var result = words.replace(/[(]?(ng'.)[)]?/gi, '<b>$1</b>');

但这会返回:

'this is a <b>ng.</b> word <b>ng.</b>a)'

请注意,左侧支架已拆下!

结果应该是:

'this is a <b>ng.</b> word (<b>ng.</b>a)'

如果搜索词不是"ng.",而是"(ng.a)",那么结果应该是:

'this is a ng. word <b>(ng.a)</b>'

感谢

// Something like:
var x='this is a very (re.a) long sentence'
var y = x.replace(new RegExp('''(re''.a'')'),'<b>$&</b>')
console.log(y) // prints "this is a very <b>(re.a)</b> long sentence"
// alternatively you don't have to escape the ' in /re/ style
var y = x.replace(new RegExp(/'(re'.a')/),'<b>$&</b>')