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

标签 java regex string special-characters

我正在寻找一种正则表达式模式,以查明字符串变量中是否存在 4 个特定特殊字符中的任何一个:撇号 (') 破折号 (-) 破折号 (—) 倒置问号 (¿)

我试过包含字符串的方法,但使用它我必须比较 4 次:

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

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

我还可以知道以最短的方式具体找到了哪个字符吗?

最佳答案

你可以这样试试

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

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

  • .* - 零个或多个任意字符(换行符旁)
  • ['\\-—¿] - 之一 - ¿(- 是正则表达式字符类中的特殊字符 - [...] - 所以我需要使用 \ 将其转义,其中Java必须写成"\\"或者放在[之后或者]之前)
  • .* - 同样是零个或多个任意字符(换行符旁边)

关于java - 在字符串中查找特定的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16120514/

相关文章:

正则表达式,我只是不明白

javascript - 在Electron中,如何使用 Electron 打包器仅包含特定的node_modules?

将整数和 float 的字符串转换为 C 中的 float 组

string - Julia 有字符串 'contains' 子字符串方法吗?

java - 如何使用 Selenium WebDriver 获取所有链接并一一单击这些链接

javascript - 使用 JSP、Java 和 Javascript 的带有数据库数据的 HTML 表

java - 将 JSON 解析为对象

以编程方式设置 Java 路由器端口

regex - Dart 说 Regexp 有无效的量词,但它在 JavaScript 中有效 - 一个错误?

java - 根据字符串到长整型映射将定界字符串转换为定界长整型