【发布时间】:2016-04-27 20:04:14
【问题描述】:
我使用以下正则表达式将句子拆分为单词:
"('?\w[\w']*(?:-\w+)*'?)"
例如:
import re
re.split("('?\w[\w']*(?:-\w+)*'?)","'cos I like ice-cream")
给予:
['', "'cos", ' ', 'I', ' ', 'like', ' ', 'ice-cream', '!']
但是,格式化标签有时会出现在我的文本中,而我的正则表达式显然无法按我的意愿处理它们:
re.split("('?\w[\w']*(?:-\w+)*'?)","'cos I <i>like</i> ice-cream!")
给予:
['', "'cos", ' ', 'I', ' <', 'i', '>', 'like', '</', 'i', '> ', 'ice-cream', '!']
虽然我愿意:
['', "'cos", ' ', 'I', ' <i>', 'like', '</i> ', 'ice-cream', '!']
你会如何解决这个问题?
【问题讨论】:
-
只是好奇,为什么要保留
''或' '之类的空字符串? -
@ccf 因为那时我知道奇数元素是单词,而偶数元素不是。
标签: regex