我正在尝试做什么:解析查询以获取前导或尾随?这将导致对字符串的其余部分进行搜索。
“美食吧?” 或“?foobar”导致搜索。“foobar”会导致其他一些行为。
此代码在解释器中按预期工作:
>>> import re
>>> print re.match(".+\?\s*$","foobar?")
<_sre.SRE_Match object at 0xb77c4d40>
>>> print re.match(".+\?\s*$","foobar")
None
来自 Django 应用程序的此代码不会:
doSearch = { "text":"Search for: ", "url":"http://www.google.com/#&q=QUERY", "words":["^\?\s*",".+\?\s*$"] }
...
subQ = myCore.lookForPrefix(someQuery, doSearch["words"])
...
def lookForPrefix(query,listOfPrefixes):
for l in listOfPrefixes:
if re.match(l, query):
return re.sub(l,'', query)
return False
Django 代码从不匹配尾随的“?”,所有其他正则表达式都可以正常工作。
为什么不呢?