我正在寻找一个正则表达式模式,用于查找字符串变量中是否存在4个特定特殊字符:撇号(')和短划线( - )em短划线( - )倒置问号(¿)< / p>
我尝试了包含字符串的方法,但是使用它我将要比较4次:
abc.contains("'")||abc.contains("-")||abc.contains("—")||abc.contains("¿")
使用正则表达式有更好的方法吗?因为我必须为许多变量实现相同的功能。
我是否也知道以最短的方式找到了哪个角色?
答案 0 :(得分:6)
你可以试试这种方式
if (abc.matches(".*?['\\-—¿].*"))
如果将接受与此序列匹配的任何字符串:
.*
- 零个或多个字符(在新行旁边)['\\-—¿]
- 其中一个'
-
—
¿
(-
是正则表达式字符类中的特殊字符 - [...]
- 所以我需要使用\
来转义它,其中Java必须写为"\\"
或者在[
之后或]
之前放置<).*
- 再次为零或多个字符(在新行旁边)