java - 正则表达式 : Specific characters in the text

标签 java regex

我的目标是验证某些文本中的特定字符(*,^,+,?,$,[],[^]),例如:

?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/

相关文章:

java - RestTemple 调用后异常

java - 服务器 Tomcat 中的客户端身份验证

regex - Python Fabric - 在带空格的目录中删除与模式匹配的文件?

java 获取价格和符号

java - 有没有办法找到 Hibernate 的加载时间?

java - 更改 Jackson 中的默认序列化行为

Java,如果可拖动对象接触其他对象

ruby - 如何搜索、递增和替换 Ruby 字符串中的整数子字符串?

c++ - 升压::精神::莱克斯;如何指定 token "||"?

PHP 替换 EM Dash REGEX