Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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,我有以下正则表达式: (.+?)\1+ 它用于识别字符串中的重复序列。但比赛可能不仅仅由数字或点组成,也可能不以点开始或以数字结束。我尝试使用: ^[^\.](.+?)\1+$[\d] 但这一解决方案并不奏效。例如,它无法识别4F.4F.4F. 编辑: 我把所有答案的想法结合起来,找到了解决办法。它是: (?!\)(.+?)\1+(?此id是您需要的 result = re.findall(r"^(?!\.)(\w+\.)(?!.\d)\1+", subject) 演示 您需要在$之前放置

我有以下正则表达式:

(.+?)\1+
它用于识别字符串中的重复序列。但比赛可能不仅仅由数字或点组成,也可能不以点开始或以数字结束。我尝试使用:

^[^\.](.+?)\1+$[\d]
但这一解决方案并不奏效。例如,它无法识别
4F.4F.4F.

编辑:

我把所有答案的想法结合起来,找到了解决办法。它是:

(?!\)(.+?)\1+(?此id是您需要的

result = re.findall(r"^(?!\.)(\w+\.)(?!.\d)\1+", subject)
演示

您需要在
$
之前放置
\D
(非数字):

^[^\.](.+?)\1+\D$
我会使用Lookaheads:

(?!\.)(.+)(?<![0-9])\1+
(?!\)(.+)(?
演示:

这符合您的规格:

result = re.findall(r"([^.].*?\D)\1", subject, re.DOTALL)

如果没有字符串中的点,这个版本就不匹配了。是的,有很多方法来表达同样的东西。很高兴你能用它。嘿,我注意到你还没有投票给StAdvOpLoad。如果我的答案或另一个答案解决了你的问题,请考虑“接受它”。单击左侧的复选标记和箭头,因为这是声誉系统的工作方式。当然,没有义务这样做。稍后当您的声誉更高时,您也可以向上投票问题。感谢收听我的20秒so教程。:)我想对所有答案进行投票表决,但没有一个正确地解决了问题。正如我所说,我通过综合所有的想法,也通过纠正一些错误得到了答案。也许这也是我的错,因为我的辩护不是最好的,但我认为我不应该对错误的答案进行投票表决。谢谢你为投票人所做的解释请给我详细介绍一下