我正在处理一个包含星号(*)和管道(|)的文件。
我想要一个正则表达式来匹配一个组合,其中至少有4个管道,它们之间有任意数量的星号。只要存在至少4个,就需要匹配任意数量的管道。
我需要能够从文件中删除这些内容,保留其他所有内容。
示例:
匹配
|||||||||||||||
|***|*||******|
|||*****************|
不匹配:
|||
|?|*|*|
|||?|
答案 0 :(得分:0)
(?:[*]*[|]){4,}
此正则表达式将执行以下操作:
*
和|
字符|
字符*
字符现场演示
https://regex101.com/r/mJ4nY4/2
示例文字
|||||||||||||||
|***|*||******|
|||*****************|
|||
|?|*|*|
|||?|
样本匹配
|||||||||||||||
|***|*||******|
|||*****************|
NODE EXPLANATION
----------------------------------------------------------------------
(?: group, but do not capture (at least 4
times (matching the most amount
possible)):
----------------------------------------------------------------------
[*]* any character of: '*' (0 or more times
(matching the most amount possible))
----------------------------------------------------------------------
[|] any character of: '|'
----------------------------------------------------------------------
){4,} end of grouping
----------------------------------------------------------------------
如果您不想捕获字符串*
中的前导*|||**|
,那么您可以使用此表达式
[|](?:[*]*[|]){3,}
现场演示