Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.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/4/regex/20.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 正则表达式在一行中精确查找4个十进制值_Python_Regex_String Matching - Fatal编程技术网

Python 正则表达式在一行中精确查找4个十进制值

Python 正则表达式在一行中精确查找4个十进制值,python,regex,string-matching,Python,Regex,String Matching,我需要正则表达式的帮助来查找文件中的特定块。这些块有4个带逗号和空格分隔符的十进制数。例如: 1.23,4.567 8.9,10.1112 我需要的正则表达式是: 十进制,十进制,十进制(正好4个值) Thx寻求帮助。最好使用下面这样的锚定正则表达式 r'^\D*\d+\.\d+,\d+\.\d+ \d+\.\d+,\d+\.\d+\D*$' \D*匹配任何非数字字符,零次或多次 示例: >>> s = ['1.23,4.567 8.9,10.1112', '1.23,4.

我需要正则表达式的帮助来查找文件中的特定块。这些块有4个带逗号和空格分隔符的十进制数。例如:

1.23,4.567 8.9,10.1112
我需要的正则表达式是: 十进制,十进制,十进制(正好4个值)


Thx寻求帮助。

最好使用下面这样的锚定正则表达式

r'^\D*\d+\.\d+,\d+\.\d+ \d+\.\d+,\d+\.\d+\D*$'
\D*
匹配任何非数字字符,零次或多次

示例:

>>> s = ['1.23,4.567 8.9,10.1112', '1.23,4.567 8.9,10.1112 1.2,3.45', 'text 1.23,4.567 8.9,10.1112 text']
>>> for i in s:
        if re.match(r'^\D*\d+\.\d+,\d+\.\d+ \d+\.\d+,\d+\.\d+\D*$', i):
            print(i)


1.23,4.567 8.9,10.1112
text 1.23,4.567 8.9,10.1112 text
仅打印块

>>> for i in s:
        m = re.match(r'^\D*(\d+\.\d+,\d+\.\d+ \d+\.\d+,\d+\.\d+)\D*$', i)
        if m:
            print(m.group(1))


1.23,4.567 8.9,10.1112
1.23,4.567 8.9,10.1112
请试试这个:

^\D*([\d\.]+,[\d\.]+\s[\d\.]+,[\d\.]+)\D*$
我想这会解决你的问题。我用上面的正则表达式附加了屏幕截图。我希望这对你有帮助


这里有一个更简单的版本。我假设“,”和“空白”中的任何一个将数字(用十进制数)分开

如果你认为有一种模式既有“,”又有“空间”


你在运行哪种语言?语言是Python。好的,我试试这个。谢谢
^\D*([\d\.]+,[\d\.]+\s[\d\.]+,[\d\.]+)\D*$
/(\d+\.\d+(,|\s+)?){4}/
/(\d+\.\d+,\s+){4}/