在字符串中查找特定的特殊字符

时间:2013-04-20 12:43:34

标签: java regex string special-characters

我正在寻找一个正则表达式模式,用于查找字符串变量中是否存在4个特定特殊字符:撇号(')和短划线( - )em短划线( - )倒置问号(¿)< / p>

我尝试了包含字符串的方法,但是使用它我将要比较4次:

abc.contains("'")||abc.contains("-")||abc.contains("—")||abc.contains("¿")

使用正则表达式有更好的方法吗?因为我必须为许多变量实现相同的功能。

我是否也知道以最短的方式找到了哪个角色?

1 个答案:

答案 0 :(得分:6)

你可以试试这种方式

if (abc.matches(".*?['\\-—¿].*"))

如果将接受与此序列匹配的任何字符串:

  • .* - 零个或多个字符(在新行旁边)
  • ['\\-—¿] - 其中一个' - ¿-是正则表达式字符类中的特殊字符 - [...] - 所以我需要使用\来转义它,其中Java必须写为"\\"或者在[之后或]之前放置<)
  • .* - 再次为零或多个字符(在新行旁边)