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})