Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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,目前,我使用两个正则表达式从字符串中获取数据,如下所示: match = re.match('(\d+(\.\d+)*)(.*)[Xx](.*)(\d+(\.\d+)*)|', '12 x 13.5|1 - 3 acres') 我要的号码是12和13.5 在另一种情况下,字符串没有|,仅在数字后为空。我用这个来匹配: match = re.match('(\d+(\.\d+)*)(.*)[Xx](.*)(\d+(\.\d+)*)$', '12 x 13.5') 我想要的是使用一个正则表达式来

目前,我使用两个正则表达式从字符串中获取数据,如下所示:

match = re.match('(\d+(\.\d+)*)(.*)[Xx](.*)(\d+(\.\d+)*)|', '12 x 13.5|1 - 3 acres')
我要的号码是12和13.5

在另一种情况下,字符串没有|,仅在数字后为空。我用这个来匹配:

match = re.match('(\d+(\.\d+)*)(.*)[Xx](.*)(\d+(\.\d+)*)$', '12 x 13.5')
我想要的是使用一个正则表达式来匹配这两个条件,我应该怎么做

更新:

我通过以下方式获得数字:

match.group(1)
match.group(4)+match.group(5)

我不明白这个问题。如何合并这些行?还有比什么更好的方法?代码应该做什么?顺便说一下,我很确定这两个正则表达式都是错误的。请描述您试图匹配的内容。为什么不简单地删除
|
/
$
?因此基本上您正在寻找一种匹配
|
字符或字符串结尾的方法?这将是
(?:$\\\\\)
。此外,
\d+(\.\d+*
1.2.3.4.5
匹配。你不想匹配任意数量的小数;您希望匹配0或1。使用
\d(\.\d+)