匹配不包含数字的完整字符串-和+

时间:2018-10-24 14:55:22

标签: regex

我正在尝试为除其他字符之外的其他字符串找到模式

  

+,[0-9],-和\

。 例如:+ 123- \不应该匹配     + 232aa应该匹配

我尝试了这个:      ^[a-zA-Z?\§$%&=?{}\\]*$

  • 与asdad $之类的字符串匹配
  • 像+ 331234-44这样的字符串不是 匹配了我想要的东西
  • 类似于123asd或asdad123 $的字符串也不匹配 但我应该匹配

我不确定我在这里做错了什么

1 个答案:

答案 0 :(得分:1)

我想这就是你想要的:

^.*[^+0-9\\-]+$|^[^+0-9\\-]+.*$

这是一个工作示例:

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

我认为您在块引用中有,来分隔“项目”,它不属于项目列表。我使用[^ ... ]作为否定字符类。因此,不在该列表中的所有内容都将匹配。请注意,\需要转义,并且我将-连字符放在末尾,以免混淆为一系列字符。

我确定可以编写一个更简洁的正则表达式,但是我通常倾向于易于阅读。这就是为什么很容易进行后续更新的原因。