2024-10-02 04:24:11 发布
网友
如何将带有regex的字符串拆分为不超过3个字符的单词,如:
输入
"ads1323z123123c123123890sdfakslk123klaad,313ks"
输出
['ads', 'z', 'c', 'ks']
也可以使用lookahead和lookahead表达式仅匹配3个字符的单词:
import re s = "ads1323z123123c123123890sdfakslk123klaad,313ks" re.findall('(?<![a-zA-Z])[a-zA-Z]{1,3}(?![a-zA-Z])', s)
输出:
正则表达式的工作原理如下:中间部分[a-zA-Z]{1,3}表示“匹配1到3个字母字符”。第一部分(?<![a-z][A-Z])是一个否定的lookback断言,断言3个字母字符前面没有字母字符。最后一部分(?![a-zA-Z])是一个否定的先行断言,断言3个字母字符后面没有字母字符。你知道吗
[a-zA-Z]{1,3}
(?<![a-z][A-Z])
(?![a-zA-Z])
您可以使用re.split:
re.split
import re s = "ads1323z123123c123123890sdfakslk123klaad,313ks" results = list(filter(lambda x:len(x) <= 3, re.split('[^a-zA-Z]+', s)))
也可以使用lookahead和lookahead表达式仅匹配3个字符的单词:
输出:
正则表达式的工作原理如下:中间部分
[a-zA-Z]{1,3}
表示“匹配1到3个字母字符”。第一部分(?<![a-z][A-Z])
是一个否定的lookback断言,断言3个字母字符前面没有字母字符。最后一部分(?![a-zA-Z])
是一个否定的先行断言,断言3个字母字符后面没有字母字符。你知道吗您可以使用
re.split
:输出:
相关问题 更多 >
编程相关推荐