我的目标是验证某些文本中的特定字符(*,^,+,?,$,[],[^]),例如:
?test.test => true
test.test => false
test^test => true
test:test => false
test-test$ => true
test-test => false
我已经根据上述要求创建了正则表达式,但我对此不确定。
^(.*)([\[\]\^\$\?\*\+])(.*)$
很高兴知道是否可以通过这种方式进行优化。
最佳答案
您的正则表达式已经经过优化,因为它非常简单。您可以使之变得更简单或仅可读。
此外,如果您使用 Java 的 String
类的 matches()
方法,那么您将不需要 ^
和 $
在两端。
.*([\\[\\]^$?*+]).*
Java 使用双斜杠(\\
),否则请使用单斜杠(\
)。
看,我已经删除了捕获 ()
以及字符 ^$?*+
的转义字符 \
,因为它们位于内部字符类[]
。
关于java - 正则表达式 : Specific characters in the text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22507972/