识别除某些符号之外的正则表达式

问题描述 投票:1回答:3

我目前正在使用以下正则表达式模式删除句子中的符号。

sentence = re.sub("[^a-zA-Z]"," ", sentence)

但是,我想保留所有-并删除句子中的所有其他符号。

例如,在下面提到的句子中,我想获得如下输出。

Input: tim-tam is a tasty, yummy chocolate.
Output: tim-tam is a tasty yummy chocolate

如何改进我目前的正则表达式模式呢?

python regex
3个回答
4
投票

regular expression syntax

[^a-zA-Z]表示匹配任何不在a-z或A-Z范围内的字符。

可以通过补充该组来匹配不在范围内的字符。如果集合的第一个字符是“^”,则将匹配集合中不包含的所有字符。例如,[^ 5]将匹配除“5”之外的任何字符,[^^]将匹配除“^”之外的任何字符。如果它不是集合中的第一个字符,则没有特殊含义。

如果你想排除-,请加入:[^a-zA-Z-]


0
投票

Y 1的a-a-H-Z

除了a-z,A-Z或破折号之外的任何东西。


0
投票

如果这是你目前的正则表达式

sentence = re.sub("[^a-zA-Z]"," ", sentence)

并且你想要排除-,使用

sentence = re.sub("[^a-zA-Z-]"," ", sentence)

[]开头的插入符号表示“不属于这个角色类”。因此,在集合中添加-会将其从匹配中排除。

© www.soinside.com 2019 - 2024. All rights reserved.