java - 正则表达式检测字符串中不同且独立的三个点

标签 java regex

another question有关,我正在尝试构建一个正则表达式来检测字符串中独立且不同的三个点 (...) 的所有实例。

决定自己写一个单独的问题。

正则表达式: (For testing)

/(([^\.]|^)(\.\.\.)([^\.]|$))/g

测试:

... ......... ...
....... ... ..... .... ... .. .....  
....... ... ... abc ... ...PQR... SQT..W..M ... ...  
ABC ... PQR...

结果:
检测到蓝色的(尽管检测到不必要的尾随空格),
未检测到红色矩形部分,
橙色是不必要的 R 检测到 enter image description here

预期:
最终结果应该只是 ...,没有任何尾随空格或 R 作为后缀。红色矩形点也必须被检测到。

任何更正都会有很大帮助。

最佳答案

在点之前使用反斜杠来匹配文字点,否则它将匹配任何字符,因为点是特殊的正则表达式元字符。如果您不想匹配前面或后面的额外字符,也可以使用否定查找。

"(?<!\\.)\\.{3}(?!\\.)"

DEMO

  • (?<!\.)负向后查找,断言匹配前面不会有文字点。

  • \.{3}正好匹配三个点。

  • (?!\.)负向前瞻,断言匹配后面不会跟有文字点。

关于java - 正则表达式检测字符串中不同且独立的三个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28988277/

相关文章:

java - 我应该在 TDD 中使用 lambda 吗?

java - 如何使用 LambdaJ 按字段名称设置列表中对象的字段?

java - 实体在映射时如何获取非主键值?

java - 为什么这些 Java replaceAll 语句不起作用?

java - 如何通过 main() 和 TestNG 在 IDE 中编写 Selenium Java 应用程序代码

java - 在 Java 中迭代少量固定数量的值的最佳方法是什么?

Python-从字符串中提取文本

regex - 如何在vim中替换括号

java - 使用正则表达式删除没有插件的 html 标签

javascript - 正则表达式:如何在文本之间获取某些内容,但其他文本之间除外