正则表达式后视替代
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 立即出现在它们的右侧。
我正在寻找正则表达式后视替代方案,因为 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 立即出现在它们的右侧。