匹配额外字符的正则表达式

时间:2017-12-05 18:56:48

标签: regex

使用:this tool to evaluate my expression

我的测试字符串:“小”蒂米(蒂姆)麦格劳

我的正则表达式:     ^ [() “] |。[”()]

看起来我正在抓住我想要的角色但是我的比赛包括比赛前的任何角色。我不确定是什么,或者如果有的话,我错误地抓住了前面的那些角色?目标是在我们的一个系统的名称字段中捕获我们不想要的字符。

1 个答案:

答案 0 :(得分:1)

您当前的正则表达式^[()"]|.["()]说明如下:

  • ^[()"]|.["()]匹配以下任一项
    • ^[()"]符合以下条件
      • ^在行首处断言位置
      • [()"]匹配列表()"
      • 中的所有字符
    • .["()]符合以下条件
      • .匹配任何角色(这是您遇到的问题)
      • ["()]匹配列表"()
      • 中的所有字符

代码

您实际上可以将正则表达式简化为[()"]

但是,最终,创建一个否定集合可以更容易地确定哪些字符有效而不是无效字符。这种方法可以让你得到像[^\w ]这样的东西。这意味着匹配集合中不存在的任何内容。因此,匹配任何非单词和非空格字符(在您的示例字符串中,这将匹配符号()",因为它们不在集合中)。