python中正确的正则表达式
我在提取粗体字时遇到了一个小问题: Médoc,胭脂python中正确的正则表达式,python,regex,scrapy,Python,Regex,Scrapy,我在提取粗体字时遇到了一个小问题: Médoc,胭脂 2ème Vin,玛歌,玫瑰 2ème vin,佩萨克-莱奥格南,布兰科 我要进一步澄清我的问题: 我试图从网页中提取一些信息,所以每次我发现一种句子,但我感兴趣的是粗体。我给你树上的地址: () () re(r'\s*\w+-\w+-\w+\w+-\w+\w+\w+\w+[^Rouge,Blanc,Rosé]) 有什么想法吗?似乎它总是逗号分隔列表中倒数第二个学期?您可以拆分并选择倒数第二个,例如: >>> myStr
2ème Vin,玛歌,玫瑰
2ème vin,佩萨克-莱奥格南,布兰科 我要进一步澄清我的问题: 我试图从网页中提取一些信息,所以每次我发现一种句子,但我感兴趣的是粗体。我给你树上的地址:
- ()
- () re(r'\s*\w+-\w+-\w+\w+-\w+\w+\w+\w+[^Rouge,Blanc,Rosé])
有什么想法吗?似乎它总是逗号分隔列表中倒数第二个学期?您可以拆分并选择倒数第二个,例如:
>>> myStr = '2ème vin, Pessac-Léognan, Blanc'
>>> res = myStr.split(', ')[-2]
否则,如果你想单独使用正则表达式。。。我建议:
>>> res = re.search(r'([^,]+),[^,]+$', myStr).group(1)
如果有必要,可以对空格进行修剪。在逗号分隔的列表中,它似乎总是倒数第二个词?您可以拆分并选择倒数第二个,例如:
>>> myStr = '2ème vin, Pessac-Léognan, Blanc'
>>> res = myStr.split(', ')[-2]
否则,如果你想单独使用正则表达式。。。我建议:
>>> res = re.search(r'([^,]+),[^,]+$', myStr).group(1)
如有必要,可对空格进行修剪。您可以使用“积极向前看”来查看
Rouge
或Blanc
或Rose
是否在我们要查找的单词后面:
>>> import re
>>> l = [u"Médoc, Rouge", u"2ème Vin, Margaux, Rosé", u"2ème vin, Pessac-Léognan, Blanc"]
>>> for s in l:
... print re.search(ur'([\w-]+)(?=\W+(Rouge|Blanc|Rosé))', s, re.UNICODE).group(0)
...
Médoc
Margaux
Pessac-Léognan
您可以使用正向前瞻查看
Rouge
或Blanc
或rose
是否在我们要查找的单词后面:
>>> import re
>>> l = [u"Médoc, Rouge", u"2ème Vin, Margaux, Rosé", u"2ème vin, Pessac-Léognan, Blanc"]
>>> for s in l:
... print re.search(ur'([\w-]+)(?=\W+(Rouge|Blanc|Rosé))', s, re.UNICODE).group(0)
...
Médoc
Margaux
Pessac-Léognan
这里的标准是什么?这里的标准是什么?最后一个输出应该是
Pessac-Léognan
而不是Léognan
@MartijnPieters是的,我想你抓住了他。@alecxe-1在你的回答中是我的(我的连接被拉断了,所以无法评论)+1现在;)@你是说我刚刚收到的连续否决票?耸耸肩,不管怎样,今晚都会恢复。我很确定是谁干的。@MartijnPieters是的,他因为eval()
而非常沮丧。最后的输出应该是Pessac-Léognan
而不是Léognan
@MartijnPieters是的,我想你抓住了他。@alecxe-1在你的回答中是我写的(我的连接被拉断了,所以无法评论)+1现在;)@你是说我刚刚收到的连续否决票?耸耸肩,不管怎样,今晚都会恢复。我很确定是谁干的。@MartijnPieters是的,他因为eval()
而非常沮丧。不要用str
作为变量名。@AshwiniChaudhary好的,是否有函数的名称包含str
?str
是python中的内置类型。感谢您的回答,但我必须进一步澄清我的问题:我试图从网页中提取一些信息,因此每次我都会发现一种句子,但我感兴趣的是粗体。我给你树上的地址:--[link]()@xeroxSO哦,但这改变了一切。。。您可以试试这个,它会查找您要查找的特定标题:res=re.search(r.*?\s([^,]+),[^,]+”,myPage)。组(1)
。不要将str
用作变量名。@AshwiniChaudhary好的,是否有函数的名称包含str
?str
是python中的内置类型。感谢您的回答,但我必须进一步澄清我的问题:我试图从网页中提取一些信息,因此每次我都会发现一种句子,但我感兴趣的是粗体。我给你树上的地址:--[link]()@xeroxSO哦,但这改变了一切。。。您可以试试这个,它会查找您要查找的特定标题:res=re.search(r'.*?\s([^,]+),[^,]+”,myPage)。组(1)
。