【问题标题】:java regex Pattern.compile multiple characters [duplicate]java正则表达式Pattern.compile多个字符[重复]
【发布时间】:2015-09-17 19:53:00
【问题描述】:

我需要编写一个java模式来识别除"0123456789""("")""|""-"" "之外的所有特殊字符。

谁能帮我解答一下?

我想使用 Pattern.compilepattern.matcher 来找出答案。

【问题讨论】:

  • 您自己有没有尝试过这样做? java.util.regex.Pattern javadoc 似乎很清楚如何使用元字符。
  • (?:[all special characters](?<![\d()| -]))+ 是一种方式。这可以表达的方式是无穷无尽的..
  • 试试 [^()|\- a-zA-Z0-9]
  • 谢谢...但我还有另一个组合 [^0-9\\s\\|\(\)\\-]

标签: java regex


【解决方案1】:

如果您想单独查找所有字符,可以使用此模式-

/[^ 0123456789()|\-]/g

或者如果你想找到连续的字符块,你应该使用这个-

/[^ 0123456789()|\-]+/g

这将识别除[^(*this part*)] 内的所有字符

顺便说一句,如果您想进一步研究正则表达式模式http://regexr.com/ 将非常有帮助。有快速参考和教程可帮助您快速学习正则表达式的基础知识。

【讨论】:

  • 您需要转义该连字符 (\-) 或将其移至最后一个位置:[^0123456789()| -]。 Java 和 RegExr 都将[|- ] 视为一个范围,并抛出异常,因为端点以错误的顺序列出。但我认为我们还没有足够的信息来回答这个问题。比如作者所说的“特殊字符”是什么意思?
猜你喜欢
  • 1970-01-01
  • 2015-07-25
  • 1970-01-01
  • 1970-01-01
  • 2017-04-22
  • 2020-06-03
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
相关资源
最近更新 更多