Python 如何使用正则表达式将句子拆分为单词?
“她太好了!”->[“她”、“她”、“她”、“那么”、“很好”、“很好”!] 我想这样把句子分开! 所以我写了代码,但它包含空格! 如何仅使用正则表达式生成代码Python 如何使用正则表达式将句子拆分为单词?,python,regex,Python,Regex,“她太好了!”->[“她”、“她”、“她”、“那么”、“很好”、“很好”!] 我想这样把句子分开! 所以我写了代码,但它包含空格! 如何仅使用正则表达式生成代码 words = re.findall('\W+|\w+') ->[“她”、“她”、“s”、“所以”、“很好”、“很好”!] 正则表达式: 在[^A-Za-z]中添加您不想匹配的字符 详情: []匹配列表中的单个字符 [^]匹配列表中不存在的单个字符 +在一次和无限次之间匹配 |或 Python代码: text =
words = re.findall('\W+|\w+')
->[“她”、“她”、“s”、“所以”、“很好”、“很好”!]
正则表达式:
在[^A-Za-z]
中添加您不想匹配的字符
详情:
匹配列表中的单个字符[]
匹配列表中不存在的单个字符[^]
在一次和无限次之间匹配+
或|
text = "She's so nice!"
matches = re.findall(r'[A-Za-z]+|[^A-Za-z ]', text)
输出:
['She', "'", 's', 'so', 'nice', '!']
Python的
re
模块不允许在零宽度断言上拆分。您可以改用python(确保指定使用版本1,该版本正确处理零宽度匹配)
输出:['She','s','s','so','nice','!']
匹配以下任一选项\s+|\b(?)
匹配一个或多个空白字符\s+
将位置断言为单词边界,但不在行首或行尾\b(?!^ |$)
['She', "'", 's', 'so', 'nice', '!']
import regex
s = "She's so nice!"
x = regex.split(r"\s+|\b(?!^|$)", s, flags=regex.VERSION1)
print(x)