如何在正则表达式中创建可选单词

时间:2016-01-23 10:04:56

标签: python regex

我有这个样本数据

/user/test/30173650
/sample/30079887?pos=0&code=3232323&cc=32232
/sample/30079887?pos=1
/test/codemelbourne/30173650/dsadsad/dasdasdsa/dasdas

我想获得数字项目。

我有这段代码:

\/(\d*)[?]?

为什么这也匹配/

3 个答案:

答案 0 :(得分:3)

原因是正则表达式的剩余部分也匹配空字符串:

  • \d* - 或更多位数
  • [?]? - 可选问号

要解决此问题,您可以使用至少需要一位数字的重复:

\/(\d+)[?]?

答案 1 :(得分:1)

*表示会获得或更多数字。 +表示一个或更多,因此这将删除所有空匹配。

Working regex \/(\d+)[?]?

()是捕获组,所以这只会返回所需的数字。

答案 2 :(得分:0)

您使用的是*,表示0位或更多位数。使用+

\/(\d+)\??