我正在寻找一种正则表达式模式,以查明字符串变量中是否存在 4 个特定特殊字符中的任何一个:撇号 (') 破折号 (-) 破折号 (—) 倒置问号 (¿)
我试过包含字符串的方法,但使用它我必须比较 4 次:
abc.contains("'")||abc.contains("-")||abc.contains("—")||abc.contains("¿")
使用正则表达式有更好的方法吗?因为我必须对许多变量实现相同的操作。
我还可以知道以最短的方式具体找到了哪个字符吗?
最佳答案
你可以这样试试
if (abc.matches(".*?['\\-—¿].*"))
如果将接受匹配此序列的任何字符串:
.*
- 零个或多个任意字符(换行符旁)['\\-—¿]
-之一
-
—
¿
(-
是正则表达式字符类中的特殊字符 -[...]
- 所以我需要使用\
将其转义,其中Java必须写成"\\"
或者放在[
之后或者]
之前).*
- 同样是零个或多个任意字符(换行符旁边)
关于java - 在字符串中查找特定的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16120514/