正则表达式检测字符串中的独特和独立的三个点

时间:2015-03-11 13:45:29

标签: java regex

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

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

正则表达方式: (For testing)

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

测试:

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

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

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

任何改正都会有所帮助。

1 个答案:

答案 0 :(得分:3)

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

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

DEMO

  • (?<!\.)负面的背后隐藏声称匹配不会以字面点开头。

  • \.{3}完全匹配三个点。

  • (?!\.)否定前瞻声明匹配后面没有字面点。