首页 > 解决方案 > 如何匹配字符串中的整个单词

问题描述

我想在以空格、逗号或句点分隔的字符串中提取整个单词。

text = 'OTC GLUCOSAM-CHOND-MSM1-C-MANG-BOR test, dosage uncertain'
p = r"(?i)\b([A-Za-z]+[\s*|\,|\.]+)\b"    
for m in regex.finditer(p, str(text)):
    print (m.group())

我期望得到:
OTC
GLUCOSAM-CHOND-MSM1-C-MANG-BOR
测试
剂量
不确定

但我得到的是:
OTC
BOR
测试,
剂量

标签: python

解决方案


要获取您想要的单词列表,您可以使用模块的findall()功能re。另外,尝试将正则表达式更改为如下所示:

text = 'OTC GLUCOSAM-CHOND-MSM1-C-MANG-BOR test, dosage uncertain'
result = re.findall('[\w]+[-?[\w]+]*', text)

print(result)
# outputs: ['OTC', 'GLUCOSAM-CHOND-MSM1-C-MANG-BOR', 'test', 'dosage', 'uncertain']


推荐阅读