首页 > 解决方案 > 正则表达式匹配(如果存在)不匹配行

问题描述

我有一组字符串作为:

如果 Site*** 在开始时出现并且如果 P*** 在最后出现,我想将它匹配为 3 列,否则匹配所有列

我在尝试

^(.*)??(Site\S\s\d+\S\d+)?(.*)?\s(P.*?)$

但它不见了

我该怎么做?

正则表达式:PCRE(PHP<7.3)

标签: regexregex-group

解决方案


最后一部分,包括\s需要是可选的以匹配没有它的字符串

尝试

^(Site\S\s\d+\S\d+)?(.*?)((\s)P.*)?$

https://regex101.com/r/SuvUDb/1


推荐阅读