Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.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,我使用的正则表达式与特定模式匹配: \d[\.]?[\s]?(\w+[\s]?)+\d+((\.|\,)\d{2,3}) 它与以下输入完全匹配: 1 XXX XXX 0,34 1 X5X XXX 0,34 如果有一个点或另一个特殊字符,如%等,我的问题就会出现 1 XX. 5 XXX 0,34 1 XXX 4% XX 0,34 如何允许正则表达式查找这些类型的字符?如果您希望匹配该模式,并且不需要捕获组,则可以在匹配单词字符后使用可选字符类[.%]? 若要在它们不一定在末尾时进行匹

我使用的正则表达式与特定模式匹配:

\d[\.]?[\s]?(\w+[\s]?)+\d+((\.|\,)\d{2,3})
它与以下输入完全匹配:

1 XXX XXX   0,34
1 X5X XXX   0,34
如果有一个点
或另一个特殊字符,如
%
等,我的问题就会出现

1 XX. 5 XXX 0,34
1 XXX 4% XX 0,34

如何允许正则表达式查找这些类型的字符?

如果您希望匹配该模式,并且不需要捕获组,则可以在匹配单词字符后使用可选字符类
[.%]?

若要在它们不一定在末尾时进行匹配,请使用
[\w.%]+

您可以省略
[\s]
周围的方括号,并将
(\.\124;\,)
写成
[,]

重复一个捕获组将捕获最后一个iteration的值,因此您可以将其转换为非捕获组
(?:

对于捕获组:

\d\s?(\w+[.%]?\s)+\d+(([.,])\d{2,3})

如何定义特殊字符?如“$%&#@欧元…”等字符。。。。"我试图解析ocr返回给我的内容,有时它会返回此类内容而不是字母W,谢谢你真的给了我一个字符串来拉。事实上,我需要捕获组,但你说的a只会让我获得最后一组,所以我必须更努力才能捕获数字中的所有组。我将给出answ呃作为correc既然你解决了我的第一个问题
\d\s?(\w+[.%]?\s)+\d+(([.,])\d{2,3})