Python正则表达式,两个词之间的单词匹配正确,但与点不匹配
我知道 .
是一个特殊字符,当我想要搜索它的时候,需要进行转义。
import re
fileName = "A011C009_140914_FPS025/Proxy/A011C009_140914_FPS25.1001.jpg"
regExpression = "FPS([^\\]]+)\\."
m = re.findall(regExpression, fileName)
myString = m[0]
print(myString.strip("0"))
我期望得到的结果是 25,但是我得到的是 25/Proxy/A011C009_140914_FPS25.1001
而搜索另一个特殊字符 /
的时候就没问题:
regExpression = "FPS([^\\]]+)\\/Proxy"
m = re.findall(regExpression, fileName)
2 个回答
1
这个正则表达式是这样的:
FPS([^\/]+)\/
它会匹配字符串中跟在FPS
后面的025
。
>>> regExpression = "FPS([^\/]+)\/"
>>> m = re.findall(regExpression, fileName)
>>> print m
['025']
1
你的正则表达式应该是:
regExpression = "FPS([^./]+)\\."
代码:
import re
fileName = "A011C009_140914_FPS025/Proxy/A011C009_140914_FPS25.1001.jpg"
regExpression = "FPS([^./]+)\\."
print ( re.findall(regExpression, fileName) )
['25']