我正试图从Blogger的响应中获得某些结果。我想得到我的博客名称。我如何使用正则表达式进行类似的操作?我试过谷歌搜索我的问题但不幸的是,没有一个答案在我的案例中帮助了我。
所以我的回答看起来像这样:
\\x22http://emyblog.blogspot.com/
因此,始终以\\x22http://
开头,以.blogspot.com/
我尝试过以下方法:
regEx = re.findall(b"""\x22http://(.*)\.blogspot\.com""", r)
但不幸的是它返回了一个空列表。有关如何解决这个问题的想法吗?
谢谢,
答案 0 :(得分:4)
使用原始字符串,否则\\x22
将被解释为字符"
而不是文字字符串。不确定re.findall
方法是不错的方法,re.search
就足够了。
假设你的字节串是:
>>> r = rb'\\x22http://emyblog.blogspot.com/'
使用字节串:
>>> res = re.search(rb'\\x22http://(.*)\.blogspot\.com/', r)
>>> res.group(1)
b'emyblog'
使用普通字符串:
>>> res = re.search(r'\\\\x22http://(.*)\.blogspot\.com/', r.decode('utf-8'))
>>> res.group(1)
'emyblog'
答案 1 :(得分:0)
使用r''
(字符串被视为原始字符串文字)而不是b''
import re
pattern = re.compile(r'\x22http://(.*)\.blogspot\.com')
match = pattern.match('\x22http://emyblog.blogspot.com/')
match.group(1)
# 'emyblog'
答案 2 :(得分:0)
这似乎有效!
import re
text = "\x22http://emyblog.blogspot.com/"
regex = re.compile('\x22http://(.*)\.blogspot\.com')
print regex.findall(text)