【发布时间】:2017-08-10 00:59:49
【问题描述】:
使用正则表达式,我如何将恰好以一个 . 结尾的字符串匹配为:
This is a string.
但不是以多个. 结尾的那些:
This is a string...
我有一个检测单个 . 的正则表达式:
/[\.]{1}\z/
但我不希望它匹配以 ... 结尾的字符串。
【问题讨论】:
标签: ruby regex string oniguruma
使用正则表达式,我如何将恰好以一个 . 结尾的字符串匹配为:
This is a string.但不是以多个. 结尾的那些:
This is a string...我有一个检测单个 . 的正则表达式:
/[\.]{1}\z/
但我不希望它匹配以 ... 结尾的字符串。
【问题讨论】:
标签: ruby regex string oniguruma
你想要的是一个“消极的后视”断言:
(?<!\.)\.\z
这会在字符串末尾查找一个句点前面没有句点。其他答案与以下字符串不匹配:"."
此外,您可能需要注意 unicode 省略号字符...
你可以这样检测:str =~ /\u{2026}/
【讨论】:
你可以使用:
[^\.][\.]\z
您正在寻找在最后一个点之前有一个不是点的字符的字符串。
【讨论】:
\. 是否需要在[] 中?
[\.] 和 [.] 不一样吗?\. 不一样吗?
.,第二个字符类是多余的:[^.]\.\z
str = '.'怎么办?
【讨论】:
[.] 代替 \. 是可以的,但我不能说我以前见过。