Regex Match if present 不匹配一行
Regex Match if present does not match a line
我有一组字符串作为:
- 站点:4442.001 租金 (x 1) PU094928
- Exchange1 x 6m Marrell - 建筑 &
- 清空 bin1 x 240L - Commercial & PU094928
如果 Site*** 出现在开头,P*** 出现在结尾,我想将它匹配成 3 列
否则全部匹配
我正在努力
^(.*)??(Site\S\s\d+\S\d+)?(.*)?\s(P.*?)$
但是不见了
- Exchange1 x 6m Marrell - 建筑 &
我该怎么做?
正则表达式:PCRE(PHP<7.3)
最后一部分,包括\s
需要是可选的以匹配没有它的字符串
尝试
^(Site\S\s\d+\S\d+)?(.*?)((\s)P.*)?$
您还可以使用可选的非捕获组来不捕获 space 并使模式更具体一些:
^(Site:\h\d+\.\d+)?(.+?)(?:\h(P.*))?$
^
字符串开头
(Site:\h\d+\.\d+)?
可选第1组,匹配Site:
一个space和数字.
个数字
(.+?)
捕获 组 2,最后匹配任何字符 1 次或更多次以不匹配空字符串
(?:\h(P.*))?
可选非捕获组,匹配 space 并捕获 P
和 0+ 次 group 3[= 中的任何字符33=]
$
字符串结束
我有一组字符串作为:
- 站点:4442.001 租金 (x 1) PU094928
- Exchange1 x 6m Marrell - 建筑 &
- 清空 bin1 x 240L - Commercial & PU094928
如果 Site*** 出现在开头,P*** 出现在结尾,我想将它匹配成 3 列 否则全部匹配
我正在努力
^(.*)??(Site\S\s\d+\S\d+)?(.*)?\s(P.*?)$
但是不见了
- Exchange1 x 6m Marrell - 建筑 &
我该怎么做?
正则表达式:PCRE(PHP<7.3)
最后一部分,包括\s
需要是可选的以匹配没有它的字符串
尝试
^(Site\S\s\d+\S\d+)?(.*?)((\s)P.*)?$
您还可以使用可选的非捕获组来不捕获 space 并使模式更具体一些:
^(Site:\h\d+\.\d+)?(.+?)(?:\h(P.*))?$
^
字符串开头(Site:\h\d+\.\d+)?
可选第1组,匹配Site:
一个space和数字.
个数字(.+?)
捕获 组 2,最后匹配任何字符 1 次或更多次以不匹配空字符串(?:\h(P.*))?
可选非捕获组,匹配 space 并捕获P
和 0+ 次 group 3[= 中的任何字符33=]$
字符串结束