2024-03-29 02:20:29 发布
网友
我一直使用[0-9]{9,12}来表示数字字符串的长度为9或12个字符。不过,我现在意识到它将匹配长度为10或11的输入字符串。所以我就天真地说:
[0-9]{9,12}
( [0-9]{9} | [0-9]{12} )
有没有更简洁的正则表达式来表示这一点?你知道吗
你可以试试
(\d{9}\d{3}?)
匹配9,然后可选的额外3位数
或者
((\d{3}){3,4})
匹配3或4组3位数字
你可以这样做:
[0-9]{9}[0-9]{3}?
没什么不同。。。你知道吗
您可以使用
[0-9]{9}([0-9]{3})?
但我认为你的方式更好,因为它更清楚地表达了你的意图。正则表达式已经很难读了。你知道吗
当然,您可以使用\d而不是[0-9]。你知道吗
\d
[0-9]
(编辑:我最初以为你可以把paren放在[0-9]{3}左右,但你不能;问号将被忽略。所以只保存一个字符,而不是三个。)
[0-9]{3}
(编辑2:您还需要使用^和$(或\b)或re.match()来锚定正则表达式,这些正则表达式也将匹配1234567890中的123456789)
^
$
\b
re.match()
1234567890
123456789
你可以试试
匹配9,然后可选的额外3位数
或者
匹配3或4组3位数字
你可以这样做:
没什么不同。。。你知道吗
您可以使用
但我认为你的方式更好,因为它更清楚地表达了你的意图。正则表达式已经很难读了。你知道吗
当然,您可以使用
\d
而不是[0-9]
。你知道吗(编辑:我最初以为你可以把paren放在
[0-9]{3}
左右,但你不能;问号将被忽略。所以只保存一个字符,而不是三个。)(编辑2:您还需要使用
^
和$
(或\b
)或re.match()
来锚定正则表达式,这些正则表达式也将匹配1234567890
中的123456789
)相关问题 更多 >
编程相关推荐