python - 如何匹配字符串中的整个单词
问题描述
我想在以空格、逗号或句点分隔的字符串中提取整个单词。
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
测试,
剂量
解决方案
要获取您想要的单词列表,您可以使用模块的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']
推荐阅读
- go - 使用反射在struct方法内部调用struct的方法
- swift - Swift - 没有全局访问的单例
- javascript - Vue:如何通过循环传递多个道具
- google-apps-script - 使用脚本编辑器使用公式自动填充新行适用于一个公式,但不适用于另一个
- c - 错误的文件描述符。为什么?
- spring-batch - onWriteError 不适用于 MongoItemWriter
- azure - Azure Key Vault 的 MSI 身份验证无法在本地使用 VS 2017 和 IISExpress
- rest - 使用 Pyspark 执行 POST REST 请求
- git - 将文件夹移动到另一个 git 存储库并保留历史记录
- svn - Svn:合并分支和主干上的目录更改