【发布时间】:2020-06-09 22:50:54
【问题描述】:
我有以下正则表达式,应该在第一个短语上捕获 1 个组,在第二个短语上捕获三个组。 但是由于某种原因,当我添加带有两个正确组的可选组时,它不会捕获字符串一。
正则表达式(不区分大小写)
(^(?<FULLTEXT>.*))\s?(?:(?<AREA>[a-z]{4,4}).(?<SQRM>[\d]+))$
短语
MASTER BEDROOM
LIVING ROOM LVRM 103
短语永远是: 1 - 全文 2 - 以 AREA 结尾 - 4 个字符串(总是)+ SQRM 3 位数字(总是)。在此之前的任何内容都是全文。
第 2 句捕捉到: 全文 - 客厅 面积 - LVRM SQRM - 103
第 1 句应该只捕获 FULLTEXT,但它什么也不捕获......
欢迎提出任何建议。
【问题讨论】:
-
使用
^(?<FULLTEXT>.*?)\s*(?:(?<AREA>[a-z]{4})\s*(?<SQRM>\d+))?$,见demo。 -
哇,漂亮的@WiktorStribiżew,谢谢!我会接受你的回答
-
如果字符串为
'LIVING 103',则匹配和捕获什么(如果有的话)? -
@CarySwoveland 预处理器将确保不会发生这种情况,但谢谢!
标签: regex regex-group