Python正则表达式检查重复组合
我正在处理一个有星号(*)和管道(|)的文件 我想要一个正则表达式来匹配一个组合,其中至少有4个管道之间有任意数量的星号。只要至少有4根管道,任何数量的管道都需要匹配 我需要能够从文件中删除这些,保留所有其他内容不变 示例: 匹配项:Python正则表达式检查重复组合,python,regex,Python,Regex,我正在处理一个有星号(*)和管道(|)的文件 我想要一个正则表达式来匹配一个组合,其中至少有4个管道之间有任意数量的星号。只要至少有4根管道,任何数量的管道都需要匹配 我需要能够从文件中删除这些,保留所有其他内容不变 示例: 匹配项: ||||||||||||||| |***|*||******| |||*****************| 不匹配: ||| |?|*|*| |||?| 描述 (?:[*]*[|]{4,} 此正则表达式将执行
|||||||||||||||
|***|*||******|
|||*****************|
不匹配:
|||
|?|*|*|
|||?|
描述
(?:[*]*[|]{4,}
此正则表达式将执行以下操作:
- 查找由
和*
字符组成的子字符串|
- 要求子字符串至少包含四个
字符|
- 允许子字符串具有任意数量的
字符*
|||||||||||||||
|***|*||******|
|||*****************|
|||
|?|*|*|
|||?|
样本匹配
|||||||||||||||
|***|*||******|
|||*****************|
解释
节点说明
----------------------------------------------------------------------
(?:组,但不捕获(至少4个)
次数(与最大金额匹配)
(可能的):
----------------------------------------------------------------------
[*]*的任何字符:'*'(0次或更多次
(匹配尽可能多的金额)
----------------------------------------------------------------------
[|]的任何字符:“|”
----------------------------------------------------------------------
){4,}分组结束
----------------------------------------------------------------------
候补 如果您不想像字符串
*| | | |***
中那样捕获前导的*
,则可以使用此表达式
[|](?:[*]*[|]){3,}
例子
现场演示
您可以在此处测试正则表达式:。还有一个有用的正则表达式备忘。