捕获可选组regex表达式Php

时间:2017-05-17 08:30:25

标签: php regex pcre

我几乎拥有完整的正则表达式,但是,有一种情况我无法匹配。

我需要捕获:xxxx字(如果存在),小数(30)和' cm'。

我的表达方式如下:

30x30cm

30 x 30 cm

30x30 cm

xxxx 30x30cm

xxxx(30x30cm) - >那种情况与单词xxxx不匹配(如果存在我需要捕获)

xxxx(30 x 30 cm) - >那个案例与单词xxxx不匹配(如果存在,我需要捕获)

现在是我的正则表达式:

(?:(\w+))?\s?\b(\d+)\s?x\s?(\d+)\s?(cm)\b

如果存在,我如何匹配xxxx这个词?任何帮助将不胜感激

[https://regex101.com/r/morihH/1][1]

1 个答案:

答案 0 :(得分:1)

您可以向第一个可选的非捕获组添加可选空格和bool IsInitialized() const;

(

请参阅regex demo(?:(\w+)\s*\(?)?\b(\d+)\s?x\s?(\d+)\s?(cm)\b ^^^^^^ 替换为空格,因为输入字符串是多行的。)

\s匹配0+空格后跟可选\s*\(?