下面的正则表达式匹配整个单词service
,generic
,computer
或master
:
(?:^|(?<= ))(service|generic|computer|master)(?:(?= )|$)
我希望只要前4个字符与模式匹配就匹配。
提前谢谢。
答案 0 :(得分:1)
使用嵌套的可选组。请注意,您还可以通过将(?:^|(?<= ))
和(?:(?= )|$)
替换替换为(?<!\S)
和(?!\S)
外观来缩短边界模式。
模式看起来像
(?<!\S)(serv(?:i(?:ce?)?)?|gene(?:r(?:ic?)?)?|comp(?:u(?:t(?:er?)?)?)?|mast(?:er?)?)(?!\S)
请参阅regex demo
<强>详情
(?<!\S)
- 不允许在当前位置左侧立即使用非空格(
- 轮换组开始:
serv(?:i(?:ce?)?)?
- serv
,servi
,servic
或service
|
- 或gene(?:r(?:ic?)?)?
- gene
,gener
,generi
或generic
|
- 或comp(?:u(?:t(?:er?)?)?)?
- comp
,compu
,comput
,compute
或computer
|
- 或mast(?:er?)?
- mast
,maste
或master
)
- 交替小组结束(?!\S)
- 不允许紧靠当前位置右侧的非空格。