我有这个文字'我喜欢这个,但我有一个!问题?'目前正在使用
token_pattern = re.compile(r"(?u)\b\w+\b")
token_pattern.findall(text)
使用此正则表达式时,我正在
['I','love', 'this', 'but', 'I', 'have', 'a', 'question', 'to']
我不是那个写这个正则表达式的人而且我对正则表达式一无所知(试图从例子中理解但只是放弃了尝试)现在我需要改变这个正则表达式以保持这个问题和感叹号,并将它们分成独特的令牌,所以它将返回此列表
['I','love', 'this', 'but', 'I', 'have', 'a', '!', 'question', 'to', '?']
关于我如何做到这一点的任何建议。
答案 0 :(得分:1)
试试这个:
token_pattern = re.compile(r"(?u)[^\w ]|\b\w+\b")
token_pattern.findall(text)
它也匹配所有非字母数字字符作为单个匹配。
如果您真的只需要问号和惊叹号,可以将正则表达式更改为
token_pattern = re.compile(r"(?u)[!?]|\b\w+\b")
token_pattern.findall(text)