python - 正则表达式匹配不包含符号的单词
问题描述
我正在尝试捕获某个模式之后的单词\d+"
,我想捕获该模式之后的所有单词,直到在单词中找到“&”或一个数字。
这就是我到目前为止所拥有的
import re
tests = ['the size will be 12" QTR', 'size is 7" gnh H&M','size is 12" GNH.M gm H&M', 'sizes are 12" QTR gm Best&SAP for all ages', 'size is 14" qtr 14GM']
for i in tests:
temp = re.search('\d+"\s+([A-Za-z.\s]+)', i).groups()[0]
print(temp)
预期的输出是
QTR
gnh
GNH.M gm
QTR gm
qtr
解决方案
首先替换包含&
with的单词的所有字符,&
然后像这样运行您的代码:
import re
tests = ['the size will be 12" QTR', 'size is 7" gnh H&M','size is 12" GNH.M gm H&M', 'sizes are 12" QTR gm Best&SAP for all ages', 'size is 14" qtr 14GM']
for j,i in enumerate(tests):
for word in i.split():
if "&" in word:
i = i.replace(word, '&'*len(word))
tests[j] = i
temp = re.search('\d+"\s+([A-Za-z.\s]+)', i).groups()[0]
print(temp)
print(tests)
输出:
QTR
gnh
GNH.M gm
QTR gm
qtr
运行此代码后,您将tests list
变成这样:
['the size will be 12" QTR',
'size is 7" gnh &&&',
'size is 12" GNH.M gm &&&',
'sizes are 12" QTR gm &&&&&&&& for all ages',
'size is 14" qtr 14GM']
推荐阅读
- azure - Azure Web Functions Consuming SOAP 服务 - 如何使 async / WinHttpHandler 错误
- sql - 如何处理 postgres 全文搜索中的 Typo 错误
- python - 在 django python 中添加新卡之前,我如何检查 Stripe 客户是否已经拥有特定卡
- kotlin - Kotlin 多平台:kotlinx.coroutines.test 库在 commonTest 模块中不可见
- azure - Azure 数据工厂能否将数据发布到 Rest API
- ios - 如何使用 XHR (AJAX) 在 iOS12 上解决 ClientAbortException?
- html - 如何从
标签 [复制到剪贴板]
- java - Spring Batch Job 无明显原因停止
- marklogic - 如何在 Apache NiFi 的处理器中使用 ExecuteScriptMarkLogic?
- javascript - React Modal 确认无法正常工作