繁体   English   中英

如何在正则表达式中制作可选单词

[英]How to make optional word in regex

我有这个样本数据

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

我想获取号码项目。

我有以下代码:

\/(\d*)[?]?

为什么也匹配/

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

  • \\d* - 零个或多个数字
  • [?]? - 可选的问号

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

\/(\d+)[?]?

*表示它将得到零个或多个数字。 +表示一个或多个,因此将删除所有空匹配项。

工作正则表达式 \\/(\\d+)[?]?

()是捕获组,因此它将仅返回所需的数字。

您正在使用*这意味着,0个或多个数字。 使用+

\/(\d+)\??

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM