Python 贪婪的正则表达式问题
Python regular expression problem with greedy
我正在学习在线课程,但我对正则表达式有疑问。
来自“http://py4e-data.dr-chuck.net/known_by_Anayah.html”
我只想提取 "Anayah"
这是我的尝试:
stringToParse = "http://py4e-data.dr-chuck.net/known_by_Anayah.html, we just want Anayah"
print(re.search(r'[_](\w+)\.html', stringToParse).group(1))
这个 returns "by_Anayah" 所以 "by_" 部分给我一些问题...
我知道吗?因为不贪心,但是无论我尝试插入 ?,我都得不到我想要的东西。
感谢您的帮助:)
这是因为 \w
也匹配 _
个字符。将 \w
替换为 [^\W_]
以匹配除下划线以外的所有单词字符。
使用
import re
stringToParse = "http://py4e-data.dr-chuck.net/known_by_Anayah.html, we just want Anayah"
print(re.search(r'_([^\W_]+)\.html', stringToParse).group(1))
参见Python demo and the regex demo。
我正在学习在线课程,但我对正则表达式有疑问。
来自“http://py4e-data.dr-chuck.net/known_by_Anayah.html” 我只想提取 "Anayah"
这是我的尝试:
stringToParse = "http://py4e-data.dr-chuck.net/known_by_Anayah.html, we just want Anayah"
print(re.search(r'[_](\w+)\.html', stringToParse).group(1))
这个 returns "by_Anayah" 所以 "by_" 部分给我一些问题...
我知道吗?因为不贪心,但是无论我尝试插入 ?,我都得不到我想要的东西。
感谢您的帮助:)
这是因为 \w
也匹配 _
个字符。将 \w
替换为 [^\W_]
以匹配除下划线以外的所有单词字符。
使用
import re
stringToParse = "http://py4e-data.dr-chuck.net/known_by_Anayah.html, we just want Anayah"
print(re.search(r'_([^\W_]+)\.html', stringToParse).group(1))
参见Python demo and the regex demo。