我希望在字符串中的第二个点之后得到一个数字: 的 4.5.3。某种问题?但是输入字符串可能看起来像 41.53.32。某种问题?所以我的目标是第一个例子中的 3 和第二个例子中的 32 。
我正在尝试用
做(?<=(\.\d\.))[0-9]+
并且它适用于第一个示例,但是当我尝试添加(?<=(\.\d+\.))[0-9]+
时
它根本不起作用。
答案 0 :(得分:-1)
如果最终号码后面总是有一个点,那么您可以使用以下表达式:
\d+(?=\.(?:[^\d]|$))
这将匹配一个或多个数字\d+
,后跟一个点.
,然后是一个不是字符串结尾[^\d]
的数字$
的数字},即(?=\.(?:[^\d]|$))
。
答案 1 :(得分:-1)
答案 2 :(得分:-1)
如果您使用PERL或PHP,则可以尝试以下模式:
(?:\d+\.){2}\K\d+
答案 3 :(得分:-1)
(\d+.\d+.)\K\d+
匹配数字点位数点数,第一部分为未选中的组。
答案 4 :(得分:-1)
最简单的完整答案可能是这样的:
(?<=^(?:[^.]*\.){2})\d+
如果你一直担心表现,这个会稍快一点:
^(?:[^.]*\.){2}(\d+)
这个将在捕获组1时捕获所需的值。
如果您使用的引擎不支持可变长度的lookbehind,则需要使用第二个版本。
如果您愿意,可以将[^.]
替换为\d
,仅匹配数字。