Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式检查重复组合_Python_Regex - Fatal编程技术网

Python正则表达式检查重复组合

Python正则表达式检查重复组合,python,regex,Python,Regex,我正在处理一个有星号(*)和管道(|)的文件 我想要一个正则表达式来匹配一个组合,其中至少有4个管道之间有任意数量的星号。只要至少有4根管道,任何数量的管道都需要匹配 我需要能够从文件中删除这些,保留所有其他内容不变 示例: 匹配项: ||||||||||||||| |***|*||******| |||*****************| 不匹配: ||| |?|*|*| |||?| 描述 (?:[*]*[|]{4,} 此正则表达式将执行

我正在处理一个有星号(*)和管道(|)的文件

我想要一个正则表达式来匹配一个组合,其中至少有4个管道之间有任意数量的星号。只要至少有4根管道,任何数量的管道都需要匹配

我需要能够从文件中删除这些,保留所有其他内容不变

示例:

匹配项:

   |||||||||||||||

   |***|*||******|  

   |||*****************|
不匹配:

   |||

   |?|*|*|

   |||?|
描述
(?:[*]*[|]{4,}

此正则表达式将执行以下操作:

  • 查找由
    *
    |
    字符组成的子字符串
  • 要求子字符串至少包含四个
    |
    字符
  • 允许子字符串具有任意数量的
    *
    字符
例子 现场演示

示例文本

|||||||||||||||
|***|*||******|
|||*****************|
|||
|?|*|*|
|||?|
样本匹配

|||||||||||||||
|***|*||******|
|||*****************|
解释
节点说明
----------------------------------------------------------------------
(?:组,但不捕获(至少4个)
次数(与最大金额匹配)
(可能的):
----------------------------------------------------------------------
[*]*的任何字符:'*'(0次或更多次
(匹配尽可能多的金额)
----------------------------------------------------------------------
[|]的任何字符:“|”
----------------------------------------------------------------------
){4,}分组结束
----------------------------------------------------------------------

候补 如果您不想像字符串
*| | | |***
中那样捕获前导的
*
,则可以使用此表达式

[|](?:[*]*[|]){3,}

例子 现场演示


您可以在此处测试正则表达式:。还有一个有用的正则表达式备忘。