在键入前四个字符后开始匹配特定的整个单词

Start matching specific whole words after the first four characters are typed

下面的正则表达式匹配整个单词 servicegenericcomputermaster:

(?:^|(?<= ))(service|generic|computer|master)(?:(?= )|$)

我希望它在前 4 个字符与模式匹配后立即匹配。

提前致谢。

使用嵌套的可选组。请注意,您还可以通过将 (?:^|(?<= ))(?:(?= )|$) 交替替换为 (?<!\S)(?!\S) 环视来缩短边界模式。

图案看起来像

(?<!\S)(serv(?:i(?:ce?)?)?|gene(?:r(?:ic?)?)?|comp(?:u(?:t(?:er?)?)?)?|mast(?:er?)?)(?!\S)

regex demo

详情

  • (?<!\S) - 不允许紧邻当前位置左侧的非空白
  • ( - 交替组开始:
    • serv(?:i(?:ce?)?)? - servserviservicservice
    • | - 或
    • gene(?:r(?:ic?)?)? - genegenergenerigeneric
    • | - 或
    • comp(?:u(?:t(?:er?)?)?)? - compcompucomputcomputecomputer
    • | - 或
    • mast(?:er?)? - mastmastemaster
  • ) - 交替组结束
  • (?!\S) - 不允许紧靠当前位置右侧的非空白。