我正在尝试在URL字符串上使用python regex。
id= 'edu.vt.lib.scholar:http/ejournals/VALib/v48_n4/newsome.html'
>>> re.search('news|ejournals|theses',id).group()
'ejournals'
>>> re.findall('news|ejournals|theses',id)
['ejournals', 'news']
根据http://docs.python.org/2/library/re.html#finding-all-adverbs上的文档,它说search()匹配第一个,并找到所有匹配字符串中所有可能的匹配项。
我想知道为什么即使在模式中首先声明“新闻”也不会被搜索捕获。
我使用了错误的模式吗?我想搜索字符串中是否存在任何这些关键字。
最佳答案
您正在向后思考。正则表达式遍历目标字符串以查找"news"
或"ejournals"
或"theses"
,并返回找到的第一个字符串。在这种情况下,"ejournals"
首先出现在目标字符串中。
关于python - Python正则表达式-搜索和查找全部之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15100064/