Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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,我有一个关于Python中正则表达式的问题。我正在做一个项目,我必须解析一堆巨大的文本文件,并将其中的某些部分提取到电子表格中。其中一部分是批量大小,以“NUMBERxNUMBERxNUMBER…”的形式表示。它们存储在一个更大的线的中间,像这样: Spring st. , No. 208, 18.9x42.2x49x10x8x100. 'John S. Giles, exr. to Herman Goodstein, W. D. . 11,100 我正在尝试设计一个正则表达式,它将产生: 1

我有一个关于Python中正则表达式的问题。我正在做一个项目,我必须解析一堆巨大的文本文件,并将其中的某些部分提取到电子表格中。其中一部分是批量大小,以
“NUMBERxNUMBERxNUMBER…”
的形式表示。它们存储在一个更大的线的中间,像这样:

Spring st. , No. 208, 18.9x42.2x49x10x8x100. 'John S. Giles, exr. to Herman Goodstein, W. D. . 11,100
我正在尝试设计一个正则表达式,它将产生:

18.9x42.2x49x10x8x100
但我不太确定从哪里开始。如果可以有任意数量的数字(带小数点)以x分隔,那么设计这种类型的表达式的最佳方法是什么?空白将停止分析。 提前谢谢你的帮助,我真的很感激

>>重新导入
>>> import re
>>> s = '''Spring st. , No. 208, 18.9x42.2x49x10x8x100. 'John S. Giles, exr. to Herman Goodstein, W. D. . 11,100'''
>>> re.search('(?:\d+(?:\.\d+)?x)+\d+(?:\.\d+)?', s)
<_sre.SRE_Match object; span=(22, 43), match='18.9x42.2x49x10x8x100'>
>>> _.group(0)
'18.9x42.2x49x10x8x100'
>>>s=''斯普林街208号,18.9x42.2x49x10x800'约翰·S·贾尔斯,前苏联。致Herman Goodstein,W.D。11,100''' >>>重新搜索(“(?:\。\d+(?:\。\d+)?x)+\d+(?:\。\d+)”,s) >>>_u.组(0) “18.9x42.2x49x10x800”

正则表达式由两个
\d+(?:\.\d+)
组成,这是一个数字,后面有一个数字较多的点。我们这样做是为了防止出现拖尾点。表达式尽可能多地搜索这个“数字部分”,后跟一个
x
,然后需要一个最终的“数字部分”。

@stribizev谢谢!忘了逃出点修正@德雷约翰斯顿很高兴它帮助了你!如果它解决了你的问题,请记住。