[英]RegEx: Is there a way to ignore a specific set of characters in a string and still match?
[英]Regex to ignore specific characters
我正在解析非字母数字字符的文本,并希望排除撇号,短划线/连字符和逗号等特定字符。
我想为以下情况构建一个正则表达式:
这是我尝试过的:
def split_text(text):
my_text = re.split('\W',text)
# the following doesn't work.
#my_text = re.split('([A-Z]\w*)',text)
#my_text = re.split("^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$",text)
return my_text
有任何想法吗
您可以使用否定的字符类 :
my_text = re.split(r"[^\w'-]+",text)
要么
my_text = re.split(r"[^\w,'-]+",text) # also excludes commas
这是你想要的吗?
非字母数字字符,不包括撇号和超量
my_text = re.split(r"[^\w'-]+",text)
非字母数字字符,不包括逗号,撇号和超量
my_text = re.split(r"[^\w-',]+",text)
[]
语法定义了一个字符类, [^..]
“补充”它,即它否定了它。
请参阅有关该文档的文档 :
可以通过补充该组来匹配不在范围内的字符。 如果集合的第一个字符是
'^'
, 则将匹配集合中不包含的所有字符。 例如,[^5]
将匹配除'5'
之外'5'
任何字符 ,[^^]
将匹配除'^'
之外'^'
任何字符 。^
有,如果它不是在集合的第一个字符没有特殊含义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.