有条件匹配,但没有额外的空间

时间:2015-01-25 20:11:46

标签: php regex

此正则表达式:http://regexr.com/3a9id正确匹配:

create 5 pages
create 5

但它确实包含一个空格,如:“pages”。

如何避免使用该空格,还可以匹配create 5

使用此正则表达式:

/create ([1-9]{1,3})([^\s]|.*)/ig

请参阅:http://regexr.com/3a9ij

奖金问题:我怎样才能让它只与正整数一起工作?即在create 0上不匹配?

2 个答案:

答案 0 :(得分:1)

也许是这样的:

/create ([1-9]{1,}(?:[0-9]{0,})) ?(.*)/g

示例:http://regexr.com/3a9iv

([1-9]{1,}(?:[0-9]{0,}))匹配单个数字(从1到9),可能在非捕获组中跟随其他数字(以匹配数字> 9)。

?(.*) 匹配空格(如果存在),后跟任何内容。

答案 1 :(得分:0)

create 0*([1-9]\d*) *(.*)

仅在数字大于0时才匹配。

regex101 demo.