正则表达式匹配一些符号,但不包含一些符号

时间:2019-03-21 06:39:12

标签: python regex

有一个段落,我想使用正则表达式提取其中的所有单词。

a bdag agasg it's the cookies for dogs',don't you think so? the word 'wow' in english means.you hey b 097  dag final

我用re.findall(regX,str)尝试了几种正则表达式,发现其中一个可以匹配大多数单词。

regX = "[ ,\.\?]?([a-z]+'?[a-z]?)[ ,\.\?]?"

[“ a”,“ bdag”,“ agasg”,“它的”,“ the”,“ cookies”,“ for”,“ dogs”,“ do n't”,“ you”,“ think” ,“ so”,“ the”,“ word”,“ 哇” ”,“ in”,“ english”,“ means”,“ you”,“ hey”,“ b”,“ dag”,“最终”]

**wow'**外,其他所有产品都不错。

我想知道正则表达式是否可以解释逻辑“它可以是逗号/空格/句号/等,但不能是撇号”。

有人可以建议吗?

2 个答案:

答案 0 :(得分:0)

尝试:

[ ,\.\?']?([a-z]*('\w)?)[\' ,\.\?]? 

添加了另一个组,因此您只需选择组1。

答案 1 :(得分:0)

我不完全了解您想要的输出是什么,但是, 试试这个:

[ ,\.\?]?(["-']?+[a-z]+["-']?[a-z]?)[ ,\.\?]? 

使用此正则表达式可让您在文本中获得'"

如果这仍然不是您想要的,请告诉我,以便我更新我的答案。