gpt4 book ai didi

python 正则表达式匹配数字后跟字符串或什么都没有

转载 作者:行者123 更新时间:2023-11-28 21:44:28 26 4
gpt4 key购买 nike

如何匹配紧跟/tcp 或/udp 或什么都没有的数字?

下面说明了 3 个场景:输入 --> 结果

  1. 123/tcp_haha --> 123
  2. 123 --> 123
  3. 123abc/tcp --> 不匹配

我使用了 re.compile(r'(\d+)(?:\/[tcpud]{3})*')但它在情况 3 中也匹配。

编辑:猜猜这真的是一个后续问题:如何匹配后跟/tcp 或/udp 或后接 tcp/或/udp 或仅匹配数字本身的数字?所以

 1.    something else 123/tcp_haha --> 123
2. 123 --> 123
3. 123abc/tcp --> no match
4. udp/123 something else --> 123
5. tcp/123/tcp --> 123

最佳答案

字符类将匹配其包含字符的任意组合。您需要改用逻辑或。

r'^\d+(?:/tcp|/udp)?$'

?: 是一个非捕获组表示法,? 将使您的非捕获组可选(对于非后缀情况)。

如果您想在 /tcp 之后捕获字符串,您可以使用以下正则表达式:

r'^\d+(?:/tcp.*|/udp)?$'

演示:https://regex101.com/r/oUm0e9/1

关于python 正则表达式匹配数字后跟字符串或什么都没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40665068/

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