首页 > 解决方案 > 正则表达式:以特定单词开头并排除一组单词

问题描述

我有一些不同模式的文本,如下所示:

bg_table1
bg_table2
bg_table3

mp_table1
mp_table2
mp_table3

user_profile 
action_history
artifact_group

如果有人可以为我提供“正则表达式”示例以供选择,那就太好了:

  1. 文本仅以bg_mp_ 开头

    mp_table1
    mp_table2
    mp_table3
    
  2. 文本不以bg_mp_或我将提供的任何其他模式开头

    user_profile
    action_history
    artifact_group
    

提前致谢 !

标签: regex

解决方案


使用它来匹配 bg/mp/others

\b(?:bg|mp)_\S+

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

使用它来匹配 bg/mp/others:

\S+(?<!\b(?:bg|mp))_\S+

https://regex101.com/r/Sgj9HE/2/

我用过\S+这些词,意思是“除了空格之外的任何东西”如果你想更严格,你可以用\w+or或任何其他东西替换它们。[a-zA-Z0-9]+

\w+允许字母、数字和_

[a-zA-Z0-9]+只允许字母和数字。


推荐阅读