2

我正在寻找正则表达式后视替代方案,因为 autodl-irssi 不支持它。

这是我当前的工作正则表达式和测试字符串:

https://regex101.com/r/Cg6mPv/1

我认为正则表达式需要以下替换(模式修饰符和积极的后视):

(?i)(?<=\s|^|\W)

突出显示包含以下任何单词的每一行(不区分大小写):

*update*
*dlc*
*expansion*
*artwork*
*fix*
*keygen*
*goodies*
*guide*
*trainer*

如果行包含一个单词,则不突出显示(不区分大小写):

*fitgirl*

感谢任何帮助!

4

1 回答 1

1

(?<=\s|^|\W)模式基本上等于(?<=^|\W)or (?<!\w),字符串中的一个位置,它可以是字符串的起始位置,也可以是紧接在非单词字符前面的位置(即除字母、数字或 之外的字符_)。

因此,匹配一个单词边界位置后跟一个单词 char是有意义的:

\b(?=\w)

此构造等于\m[[:<:]] 引导一些(不是很多)正则表达式支持的单词边界构造,并且只需要一个单词 char 立即出现在它们的右侧。

于 2021-06-16T18:26:27.383 回答