我目前正在使用以下正则表达式模式删除句子中的符号。
sentence = re.sub("[^a-zA-Z]"," ", sentence)
但是,我想保留所有-
并删除句子中的所有其他符号。
例如,在下面提到的句子中,我想获得如下输出。
Input: tim-tam is a tasty, yummy chocolate.
Output: tim-tam is a tasty yummy chocolate
如何改进我目前的正则表达式模式呢?
[^a-zA-Z]
表示匹配任何不在a-z或A-Z范围内的字符。
可以通过补充该组来匹配不在范围内的字符。如果集合的第一个字符是“^”,则将匹配集合中不包含的所有字符。例如,[^ 5]将匹配除“5”之外的任何字符,[^^]将匹配除“^”之外的任何字符。如果它不是集合中的第一个字符,则没有特殊含义。
如果你想排除-
,请加入:[^a-zA-Z-]
Y 1的a-a-H-Z
除了a-z,A-Z或破折号之外的任何东西。
如果这是你目前的正则表达式
sentence = re.sub("[^a-zA-Z]"," ", sentence)
并且你想要排除-
,使用
sentence = re.sub("[^a-zA-Z-]"," ", sentence)
[]
开头的插入符号表示“不属于这个角色类”。因此,在集合中添加-
会将其从匹配中排除。