[英]Exclude a given string using Regex in python
如果在任何给定的字符串中遇到“ un”,我想排除所有内容。 下面是我的代码,它仅输出法语! Le @ Mans-Quevilly Ro而不是法语! Le @ Mans-Quevilly Rouen对如何工作的任何帮助将不胜感激。
import requests, bs4, re
get_reg = re.compile(r'''
([\w+\W+]*(\s\w+)*\s-\s+\w+[^'un']*) #teams
(\s\w+\s) #tip
(@\d+.\d+)
''', re.VERBOSE)
print(get_reg.findall("French! Le@ Mans - Quevilly Rouen un3.5 @1.23"))
[]
匹配其中的任何字符,因此[\\w+\\W+]
匹配任何不是单词字符,不是单词字符或+
字符,这显然不是您想要的。 同样, [^'un']
匹配不是'
, u
或n
之一的任何字符。
如您所问,该问题的解决方案是:
re.findall(r'(.*?)\s*un', "French! Le@ Mans - Quevilly Rouen un3.5 @1.23")
演示: https : //regexr.com/40806
这个非贪婪地匹配后跟空白和un
,并将第一部分作为一个组返回。
但是,从您的代码来看,您也试图匹配字符串的其他部分,从注释的讨论中,我认为您想要的是:
get_reg = re.compile(r'(.*?)\s*(un\d+.\d+)\s*(@\d+.\d+)')
print(get_reg.findall("French! Le@ Mans - Quevilly Rouen un3.5 @1.23"))
演示: https : //regexr.com/4085t
我从匹配组中排除了零件之间的空间,尽管这与您的示例有所不同,因为我怀疑这对您会更有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.