Python Regex忽略特定字符
我正在解析非字母数字字符的文本,并希望排除撇号、破折号/连字符和逗号等特定字符 我想为以下情况构建一个正则表达式:Python Regex忽略特定字符,python,regex,parsing,Python,Regex,Parsing,我正在解析非字母数字字符的文本,并希望排除撇号、破折号/连字符和逗号等特定字符 我想为以下情况构建一个正则表达式: 非字母数字字符,撇号和加高除外 非字母数字字符,不包括逗号、撇号和加粗符号 这就是我尝试过的: def split_text(text): my_text = re.split('\W',text) # the following doesn't work. #my_text = re.split('([A-Z]\w*)',text) #my_te
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
- 案例1:
- 示例输入:怎么了?很高兴见到你,我的朋友。向世界问好李>
- 示例输出:['What's','up','It's','good','to','see','you','my friend','Hello','to-the','world']
- 案例2:
- 示例输入:这意味着,做这样的事情是不好的李>
- 示例输出:['It','means','that','It's','not','good to','do','such','things']
my_text = re.split(r"[^\w'-]+",text)
或
这是你想要的吗
非字母数字字符,撇号和加高除外
非字母数字字符,不包括逗号、撇号和加粗符号
[]
语法定义了一个字符类,[^..]
对其进行“补充”,即对其进行否定
请参见以下内容:
不在某个范围内的字符可以通过补足集合进行匹配。如果集合的第一个字符是“^”
,则集合中不存在的所有字符都将匹配。例如,[^5]
将匹配除'5'
以外的任何字符,[^^]
将匹配除'^'
以外的任何字符<代码>^如果不是集合中的第一个字符,则没有特殊意义
您的代码中有一些错误(与问题无关),例如,第一行末尾缺少冒号,函数本身有缩进。感谢您指出,已修复。非常感谢您的回答和解释。非常感谢您的回答。由于zmo解释,我接受他的回答可以吗?@user3247054:当然,你不必问:)(事实上,甚至不必说“谢谢”,投票是你能给予的最好的感谢。)
my_text = re.split(r"[^\w,'-]+",text) # also excludes commas
my_text = re.split(r"[^\w'-]+",text)
my_text = re.split(r"[^\w-',]+",text)