gpt4 book ai didi

regex - 如何编写正则表达式以查找由句点分隔的一个或多个数字而不返回最后一个句点?

转载 作者:行者123 更新时间:2023-12-04 06:32:09 25 4
gpt4 key购买 nike

如何写正则表达式来查找由句点分隔的一位到三位数字之间不返回最后一个句点 ?例如,查找字符串

1.1.

它也需要匹配
1.1

或者干脆
1

同样,它需要支持一到三位数,所以
11.11.11


111.111.111

也需要工作。

所以..字符串不会总是以句点结尾,但可能会。此外,如果它确实以句点结束,则不要返回最后一个句点(因此,使用正向前瞻)。所以, 1.1.如果匹配将返回 1.1
到目前为止,这是我所拥有的,但我正在努力寻找一种不返回上一期的方法:
(\d{1,3}\.?)+(?=(\Z|\s|\-|\;|\:|\?|\!|\.|\,|\)))

它正在返回
6.6.

但我想让它回来
6.6

最佳答案

您需要:匹配 d.d.d.d.或 d.d.dxxx,不管它是否以“.”结尾。与否,总是在最后一个 d 处停止(从不是点)。

只是有什么问题:(\d(\.\d)*)
如果您希望您的点分数字字符串以一组字符结尾,请在它后面放一个前瞻,正如您在问题中所说:

(\d(\.\d)*)(?=(\Z|\s|\-|\;|\:|\?|\!|\.|\,|\)))

如果您还希望它匹配独立字符串(带或不带终止符),请添加 ?前瞻之后:
(\d(\.\d)*)(?=(\Z|\s|\-|\;|\:|\?|\!|\.|\,|\)))?

对于一位以上的数字,只需将\d 替换为\d{1,3} 等。

关于regex - 如何编写正则表达式以查找由句点分隔的一个或多个数字而不返回最后一个句点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5268860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com