这是我要搜索的字符串。
Make {The Most|One of the most} Out Of Your {Real Estate|Realty|Property} {Purchase|Acquisition} When You {Follow|Comply With|Adhere To} { something } These Tips
Run Code Online (Sandbox Code Playgroud)
它应该搜索并返回花括号中的字符串部分,{ }并且其中必须包含一个或多个管道|符号。
以下是我想出的正则表达式,但它不起作用。
/^{?([^{]*\|)*}$
Run Code Online (Sandbox Code Playgroud)
预期产出
[{The Most|One of the most}, {Real Estate|Realty|Property}, {Real Estate|Realty|Property}, {Purchase|Acquisition}, {Follow|Comply With|Adhere To}]
Run Code Online (Sandbox Code Playgroud)
请注意,它{ something }不应该是输出的一部分。提前致谢
您可以使用 2 个否定字符类,确保至少匹配管道 1 次。
您可以将量词更改为+是否应该至少有一个字符(请注意,这也可以是一个空格)
{[^{}|]*\|[^{}]*}
Run Code Online (Sandbox Code Playgroud)
解释
{ 比赛 {[^{}|\n]*匹配 0+ 次任何字符,除了{ },|或换行符\| 比赛 |[^{}\n]*匹配 0+ 次除{or}或换行符以外的任何字符(也允许另一个|)} 比赛 }{[^{}|]*\|[^{}]*}
Run Code Online (Sandbox Code Playgroud)
如果必须有一个非空白字符等是| {与}之前和之后管:
{[^\S\n]*[^\s{}|][^{}|]*\|[^\S\n]*[^\s{}|][^{}]*}
Run Code Online (Sandbox Code Playgroud)
解释
{ 比赛开场 {[^\S\n]* 匹配 0+ 个空白字符,换行符除外[^\s{}|]匹配除{ }or以外的非空白字符|[^{}|]*匹配 0+ 次除{ }or以外的任何字符|\| 比赛 |[^\S\n]* 匹配 0+ 个空白字符,换行符除外[^\s{}|]匹配除{ }or以外的非空白字符|[^{}]*匹配 0+ 次除{ }or以外的任何字符|} 比赛结束 }| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |