我想匹配字符串中的6个或更少的数字,如果它们之间有“/”或“-”

问题描述 投票:0回答:1

它应该匹配:

  • “abc 12-34 def”正好是“12-34”
  • “电话号码:123/45”,准确地说是“123/45”
  • “序列:12//-34”,准确地说是“12//-34”
  • “我的代码是 1-2-3-4”,准确地说是“1-2-3-4”

它应该匹配:

  • “太多:1234-567-89”

  • “太多;1234-567”

这是我尝试过的:

pattern = r'\d([\/-]\d){1,5}'

但没有成功

python regex
1个回答
0
投票

您可以使用单个数字,并重复该数字 0 - 5 次,中间出现零次或多次

-
/

在左侧,您可以放置一个负向后查找,在右侧放置一个负向前查找来断言空白边界。

(?<![/\d-])\d(?:[/-]*\d){0,5}(?![/\d-])

查看 正则表达式演示

© www.soinside.com 2019 - 2024. All rights reserved.