Python正则表达式匹配数字或什么都不匹配
我有条件: 第一个Python正则表达式匹配数字或什么都不匹配,python,regex,python-2.7,match,Python,Regex,Python 2.7,Match,我有条件: 第一个 \-1,1\N,0.0464128206,0.1106913625,-0.0261445305\ 第二个 \-1,1\N,0.,0.,0.\ 它可以手动执行到 \-1,1\N,0.0,0.0,0.0\ 但我试图让脚本在不进行任何编辑的情况下工作 我的正则表达式是 \d,\d\\[A-Z],[-]?\d+.\d+,[-]?\d+.\d+,[-]?\d+.\d+ 如何使正则表达式在\d+上工作,或者在不存在时跳过它 UPD: 我想使正则表达式对两个字符串都成立。如何使此
\-1,1\N,0.0464128206,0.1106913625,-0.0261445305\
第二个
\-1,1\N,0.,0.,0.\
它可以手动执行到
\-1,1\N,0.0,0.0,0.0\
但我试图让脚本在不进行任何编辑的情况下工作
我的正则表达式是
\d,\d\\[A-Z],[-]?\d+.\d+,[-]?\d+.\d+,[-]?\d+.\d+
如何使正则表达式在\d+上工作,或者在不存在时跳过它
UPD:
我想使正则表达式对两个字符串都成立。如何使此部分“\d+。\d+”在缺少第二个\d+时跳过它?
[\d+]?不工作。将
后的零件从\d+
更改为\d*
,如下所示:
\d,\d\\[A-Z],[-]?\d+\.\d*,[-]?\d+\.\d*,[-]?\d+\.\d*
\d+\.\d*
的解释如下:
至少一个数字,然后正好一个点,然后是零或一个或多个数字
请注意,我还将您的
更改为\.
(
表示任何字符)
指向debuggex的链接:
--更新
您的正则表达式可以简化为:
\d,\d\\[A-Z](?:,-?\d+\.\d*){3}
它只是将您的,\d+\.\d*
分解,知道此组重复三次。它还将[-]
更改为更干净的-
(?:…){3}
语法表示非捕获组重复三次
链接到更新的debuggex:您到底想要实现什么?不清楚您想要得到什么。如果给定字符串1,您希望输出什么?字符串2也是一样。@Jivan,请看一下更新,它听起来像是您想要的
\d*
(这相当于(\d+)?
)。@XuMuK好的,编辑索引更清晰是!这正是我一直想得到的!谢谢你的调试器链接!好的,我会记得,这一点和任何单个字符一样。@XuMuK谢谢-我更新了一点正则表达式,使它更简单、更干净