用撇号选择单词的正则表达式是什么?
这是一个单词列表示例:
above
dog
rain
you've
it's
我的代码是:
text_data=re.sub('[^0-9a-zA-Z\']+', " ", text_data)
这个正则表达式保留了撇号,但它在撇号之后将字符分成另一个单词。例如,you've
变为you'
和ve
答案 0 :(得分:1)
您可以使用撇号选择整个单词:
(\w+'\w+)
这会检查多个单词字符,撇号,然后是单词的其余部分。请注意,这个IGNORES案例中撇号出现在单词的开头或结尾,如blah'
,我想这就是你想要的。
[编辑] 您当前的正则表达式与撇号词不匹配,顺便说一下 - 它们之间是匹配的空格。我推荐像this这样的工具,这样您就可以在编辑正则表达式时看到匹配的内容。
答案 1 :(得分:0)
以下正则表达式返回匹配单词列表:
>>> re.findall("[\w]+'[\w]+", "Asdasdasd as'da sdas sa asdas'asdsa")
["as'da", "asdas'asdsa"]
答案 2 :(得分:0)
不要重新发明轮子。实际上,不需要正则表达式:
string = """
above
dog
rain
you've
it's
"""
words = [word
for word in string.split()
if "'" in word]
print(words)
# ["you've", "it's"]