Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于在字符串中查找足球队固定装置的Python正则表达式_Python_Html_Regex_String - Fatal编程技术网

用于在字符串中查找足球队固定装置的Python正则表达式

用于在字符串中查找足球队固定装置的Python正则表达式,python,html,regex,string,Python,Html,Regex,String,我使用Requests模块从目标网站访问HTML,然后使用Beauty Soup选择网站上的特定元素。讨论的内容是一个表格,其中包含2016/2017赛季英超联赛迄今为止的结果。该表包含比赛日期、参赛球队、全场和半场的得分。我想使用Python解析table元素的HTML,并提取其中列出的fixture。团队始终列为: A队-B队 球队名称可以是1-3个单独的字符串(例如伯恩利、曼联、西汉姆联队) 到目前为止,我的努力是: 进口稀土 teamsRegex=re.compile(r'(\w++\s

我使用Requests模块从目标网站访问HTML,然后使用Beauty Soup选择网站上的特定元素。讨论的内容是一个表格,其中包含2016/2017赛季英超联赛迄今为止的结果。该表包含比赛日期、参赛球队、全场和半场的得分。我想使用Python解析table元素的HTML,并提取其中列出的fixture。团队始终列为:

A队-B队

球队名称可以是1-3个单独的字符串(例如伯恩利、曼联、西汉姆联队)

到目前为止,我的努力是:

进口稀土 teamsRegex=re.compile(r'(\w++\s)+-(\s\w+))

我在这里的逻辑是,第一个团队的长度可以是1-3个单独的字符串,每个字符串后面总是有一个空格。因此,模式(\w+\s)+表示任何长度的字符串后面有一个空格,可以重复1次或多次。第二个团队名称总是以“-”后面的空格开头字符和可以是任意长度的字符串,重复1次或多次(\s\w+)

我在某种程度上达到了预期的结果,但上述情况并不完全正确。我收到了一个列表,其中包含我在索引0处的预期结果,后面是索引0的第一个字符串作为索引1,索引0中的最后一个字符串作为索引2

示例字符串:

'伯恩利-斯旺西城市对齐=中心宽度=45>0-1对齐=中心>(0-0)'

Regex发现:

[(‘伯恩利-斯旺西市’、‘伯恩利’、‘城市’、(‘0-1’、‘0’、‘1’)]

我只想找到[(‘伯恩利-斯旺西城’)]

非常感谢您的帮助

r'(?:[A-Z][a-z]*\s)+-(?:\s[A-Z][a-z]*)+'
这里有两个非捕获(
?:
,因此您将只获得完全匹配)组来匹配团队的名称。我选择显式使用字母,因此表达式仅匹配以大写字母开头的单词,不包括数字。如果团队的名称可以包含数字(如“BVB 09”),则应更改此设置

根据HTML文件的内容,可以添加最后的前瞻
(?=align)
,以增加特定性

编辑: 要匹配最多三个大写字母和可选的“&”,请尝试以下操作:

r'(?:[A-Z&]{1,3}[a-z]*\s)+-(?:\s[A-Z&]{1,3}[a-z]*)+'

奇怪的是,输入字符串中有一段HTML。您可以尝试,但我想最好是解决根本问题。这是一个非常好的解决方案,在我意识到有两个团队名称没有正确捕获之前,它似乎工作得非常好。它们是:1.QP Rangers(前两个字符大写).2.Brighton&Hove对于这一个,假设正则表达式没有捕获“&”符号,因此它不构成匹配。有人对如何修改JosefScript的正则表达式以捕获上述示例有任何建议吗?非常感谢Advanced编辑了我的答案。希望能有所帮助。