(正则表达式)如果存在定界符则捕获两个子串,否则捕获一个子串和空白
(Regex) capture two substrings if delimiter exists, otherwise one substring and blank
我想使用正则表达式将两个子字符串捕获到两个单独的捕获组中。 Country 和 City 之间的分隔符是“■”(space 后跟一个黑色方块)。如果分隔符不存在,则意味着没有城市,在这种情况下,它应该捕获一个空白值。正文如下:
<p>USA</p>
<p>SPAIN ■Madrid</p>
<p>FRANCE</p>
我有以下正则表达式,它捕获 <p>
标签之间的所有内容:
/<p>(.+)<\/p>/
如何分别捕获国家和城市(如果没有分隔符,则为空白城市)?
尝试:
/<p>(.+?)(?:\s■(.+))?<\/p>/
(.+?)
是第一个捕获组。 ?
使得不干扰空格变得懒惰。
由于 ?:
,第二组是 non-capture 组,它包含第二个捕获组 (.+)
non-capture 组之后的 ?
使整个结构可选,以防没有城市。
我想使用正则表达式将两个子字符串捕获到两个单独的捕获组中。 Country 和 City 之间的分隔符是“■”(space 后跟一个黑色方块)。如果分隔符不存在,则意味着没有城市,在这种情况下,它应该捕获一个空白值。正文如下:
<p>USA</p>
<p>SPAIN ■Madrid</p>
<p>FRANCE</p>
我有以下正则表达式,它捕获 <p>
标签之间的所有内容:
/<p>(.+)<\/p>/
如何分别捕获国家和城市(如果没有分隔符,则为空白城市)?
尝试:
/<p>(.+?)(?:\s■(.+))?<\/p>/
(.+?)
是第一个捕获组。 ?
使得不干扰空格变得懒惰。
由于 ?:
,第二组是 non-capture 组,它包含第二个捕获组 (.+)
non-capture 组之后的 ?
使整个结构可选,以防没有城市。