正则表达式后视替代

Regex lookbehind alternative

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

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

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

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

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

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

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

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

*fitgirl*

感谢任何帮助!

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

因此,匹配 后面 的单词边界位置是有意义的,而不是单词 char:

\b(?=\w)

此结构等同于 \m[[:<:]] leading 某些(不多)正则表达式支持的字边界结构,只需要一个单词 char 立即出现在它们的右侧。