我几乎拥有完整的正则表达式,但是,有一种情况我无法匹配。
我需要捕获: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这个词?任何帮助将不胜感激
答案 0 :(得分:1)
您可以向第一个可选的非捕获组添加可选空格和bool IsInitialized() const;
:
(
请参阅regex demo((?:(\w+)\s*\(?)?\b(\d+)\s?x\s?(\d+)\s?(cm)\b
^^^^^^
替换为空格,因为输入字符串是多行的。)
\s
匹配0+空格后跟可选\s*\(?
。