与another question有关,我正在尝试构建一个正则表达式来检测字符串中独立且不同的三个点 (...) 的所有实例。
决定自己写一个单独的问题。
正则表达式: (For testing)
/(([^\.]|^)(\.\.\.)([^\.]|$))/g
测试:
... ......... ...
....... ... ..... .... ... .. .....
....... ... ... abc ... ...PQR... SQT..W..M ... ...
ABC ... PQR...
结果:
检测到蓝色的(尽管检测到不必要的尾随空格),
未检测到红色矩形部分,
橙色是不必要的 R 检测到
预期:
最终结果应该只是 ...
,没有任何尾随空格或 R
作为后缀。红色矩形点也必须被检测到。
任何更正都会有很大帮助。
最佳答案
在点之前使用反斜杠来匹配文字点,否则它将匹配任何字符,因为点是特殊的正则表达式元字符。如果您不想匹配前面或后面的额外字符,也可以使用否定查找。
"(?<!\\.)\\.{3}(?!\\.)"
(?<!\.)
负向后查找,断言匹配前面不会有文字点。\.{3}
正好匹配三个点。(?!\.)
负向前瞻,断言匹配后面不会跟有文字点。
关于java - 正则表达式检测字符串中不同且独立的三个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28988277/