繁体   English   中英

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

[英]Regex matching extra characters

使用: 此工具评估我的表情

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

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

看起来我正确地捕获了想要的字符,但我的比赛包括比赛前刚出现的任何字符。 我不确定是什么,或者如果有的话,捕捉这样的前面的字符做错了吗? 目标是捕获我们系统之一的名称字段中不需要的字符。

简要

您当前的正则表达式^[()"]|.["()]表示以下内容:

  • ^[()"]|.["()]匹配以下任一
    • ^[()"]符合以下条件
      • ^在行首处声明位置
      • [()"]匹配列表中的任何字符()"
    • .["()]符合以下条件
      • . 匹配任何字符(这是您遇到的问题)
      • ["()]匹配列表"()存在的任何字符

实际上,您可以将正则表达式缩短为[()"]

但是,最终,创建一个求反集来确定哪些字符有效而不是无效字符将容易得多。 这种方法将使您获得[^\\w ]类的东西。 这意味着匹配集合中不存在的任何内容。 因此,请匹配所有非单词和非空格字符(在示例字符串中,这将匹配符号()"因为它们不在集合中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM