Python正则表达式,两个词之间的单词匹配正确,但与点不匹配

1 投票
2 回答
595 浏览
提问于 2025-05-01 08:54

我知道 . 是一个特殊字符,当我想要搜索它的时候,需要进行转义。

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']

撰写回答