gpt4 book ai didi

java - 正则表达式获取2位数字,数字不立即在Java字符之前和之后

转载 作者:行者123 更新时间:2023-11-30 02:38:36 25 4
gpt4 key购买 nike

我正在尝试用Java语言编写一个正则表达式,该正则表达式将获取所有两个数字(两个数字不能以0开头),并且不以字符开头和结尾。

例如,我要匹配以下字符串中的数字30:


character30 wordstart
wordstart 30个字符
数字30在这里


但不想在以下方面:


字符30个字符
3000


我正在尝试使用环视功能来完成此操作,到目前为止,我得出的最接近的结果是:
(?<!\w)(1[2-9]|[2-9][0-9])(?!([\w]))

两位数字不能以0开头,我不想在三位数字中匹配两位数字。

最佳答案

您可以使用以下正则表达式:

(?<!\S)[1-9]\d(?!\d)|(?<!\d)[1-9]\d(?!\S)


在Java字符串文字中定义regex模式时,请记住将反斜杠加倍。

模式匹配:


(?<!\S)-下一个数字必须以空格或字符串开头
[1-9]\d-1到9之间的数字,然后是任意一位
(?!\d)-两位数字后不能再跟一位数字
|-或
(?<!\d)-在...之前不能有数字
[1-9]\d-1到9之间的数字,然后是任意一位
(?!\S)-后面应带有空格或字符串结尾。

关于java - 正则表达式获取2位数字,数字不立即在Java字符之前和之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42402568/

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