使用正则表达式拆分字符串,如何忽略撇号?

时间:2015-02-27 07:26:14

标签: python regex string-split

我正在使用Python进行拼写检查教程并使用此正则表达式:

import re
def split_line(line):
    return re.findall('[A-Za-z]+(?:\`[A-Za-z)+)?',line)

我想知道你是否可以帮助我改变这个功能,所以它会忽略',即如果我输入字符串he's我会得到['he's']而不是['he','s']

1 个答案:

答案 0 :(得分:1)

首先,您需要通过将)替换为Marcin所提及的]来修复原始表达式。然后只需将'添加到允许的字符列表中(通过反斜杠转义):

import re
def split_line(line):
    return re.findall('[A-Za-z\']+(?:\`[A-Za-z]+)?',line)

split_line("He's my hero")

#["He's", 'my', 'hero']

当然,这不会考虑撇号位于单词开头或结尾的任何边缘情况。