-2

我有这个字符串:value268_generated_number

我通常这样做:^value.*_generated_number

我将如何匹配我的正则表达式但匹配这些数字:单词“value”之后的1,10 和 100 ?

例如:

  • value1_generated_number
  • value10_generated_number
  • value100_generated_number

该表达式还应满足生成的最多 50000 的数字。

4

1 回答 1

2

您可以使用负前瞻

^value(?!10{0,2}_).*?_generated_number

另请注意,您应该小心使用*带有 . 的量词.。它通常比你想要的更多。最好*用字符类替换,例如\d*. 为了安全起见,我使量词变得懒惰。

如果您的输入始终为 形式value<digits>_<digits>,则最终表达式为:

^value(?!10{0,2}_)\d*_\d+$
于 2013-03-20T15:53:17.847 回答