话不多说,上代码
import re
pattern_id = re.compile("(\d+)_E(\d+)_C(\d+)_P(\d+)")
file_name = "毛刺 A 1 127210853300_E2_C2_P2.bmp"
print(pattern_id.findall(file_name)[0])
结果竟然是
('1 127210853300', '2', '2', '2')
竟然最前面的那个全角 1 被匹配上了!
(由于我浏览器启用了自动加空格功能…… 澄清一下阿~1 和 12 之间没有空格)
所以说全角数字也是数字了么?
1
leoleoasd 2018-12-16 19:43:18 +08:00
|
2
jinyu121 OP @leoleoasd 澄清一下,1和 12 之间没有空格,空格是我浏览器自动加上的……去掉再试一下?
![屏幕快照 2018-12-16 下午 8.03.11.png]( https://i.loli.net/2018/12/16/5c163f6f82b7a.png) |
3
leoleoasd 2018-12-16 20:09:37 +08:00
原来是空格的问题..
|
4
wd 2018-12-16 20:16:49 +08:00 via iPhone
这个估计是和 local 有关系
|
5
wd 2018-12-16 20:17:08 +08:00 via iPhone
说错 应该是 locale
|
6
keakon 2018-12-16 21:15:22 +08:00
Python 3 对于 str pattern 会匹配 unicode 的数字,对于 bytes 只匹配 [0-9],也可以设置 re.ASCII。
|
7
scriptB0y 2018-12-17 10:02:22 +08:00
|