使用正则表达式将字符串拆分为单词

2024-10-02 04:24:11 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将带有regex的字符串拆分为不超过3个字符的单词,如:

输入

"ads1323z123123c123123890sdfakslk123klaad,313ks"

输出

['ads', 'z', 'c', 'ks']

Tags: 字符串单词regexadsks个字符ads1323z123123c123123890sdfakslk123klaad
2条回答

也可以使用lookahead和lookahead表达式仅匹配3个字符的单词:

import re
s = "ads1323z123123c123123890sdfakslk123klaad,313ks"
re.findall('(?<![a-zA-Z])[a-zA-Z]{1,3}(?![a-zA-Z])', s)

输出:

['ads', 'z', 'c', 'ks']

正则表达式的工作原理如下:中间部分[a-zA-Z]{1,3}表示“匹配1到3个字母字符”。第一部分(?<![a-z][A-Z])是一个否定的lookback断言,断言3个字母字符前面没有字母字符。最后一部分(?![a-zA-Z])是一个否定的先行断言,断言3个字母字符后面没有字母字符。你知道吗

您可以使用re.split

import re
s = "ads1323z123123c123123890sdfakslk123klaad,313ks"
results = list(filter(lambda x:len(x) <= 3, re.split('[^a-zA-Z]+', s)))

输出:

['ads', 'z', 'c', 'ks']

相关问题 更多 >

    热门问题