Python正则表达式匹配包括关键字在内的整个句子,且不中断不结束句子的句点(.com,美国等) - python

我正在尝试创建一个正则表达式,以匹配包含关键字的完整句子。这是一个示例段落:

“ 2016年支付的现金税额(扣除退款后)为4.12亿美元。《美国税法》对外国子公司的累积收入征收了强制性的一次性税,并改变了外国收入应受美国税收的方式。”

我想匹配包含关键字“ subsidiaries”的完整句子。为此,我一直在使用以下正则表达式:

[^.]*?subsidiaries[^.]*\.

但是,这仅与“税法对外国子公司的累积收入征收一次强制性一次性税并改变了外国收入受U约束的方式”相匹配,因为该表达式的开头和结尾均以“”开头。在我们中。”。有没有一种方法可以在表达式中指定我不想让它停在特定的短语,例如“美国”。或“ .com”?

参考方案

我建议tokenizing the text into sentences with NLTK,然后检查每个项目中是否存在字符串。

import nltk, re
text = "Cash taxes paid, net of refunds, were $412 million 2016. The U.S. Tax Act imposed a mandatory one-time tax on accumulated earnings of foreign subsidiaries and changed how foreign earnings are subject to U.S. tax."
sentences = nltk.sent_tokenize(text)
word = "subsidiaries"
print([sent for sent in sentences if word in sent])
# => ['The U.S. Tax Act imposed a mandatory one-time tax on accumulated earnings of foreign subsidiaries and changed how foreign earnings are subject to U.S. tax.']

要仅提取肯定句(以.结尾),请添加and sent.endswith('.')条件:

print([sent for sent in sentences if word in sent and sent.endswith('.')])

您甚至可以检查所过滤的单词是否是带有正则表达式的整个单词搜索:

print([sent for sent in sentences if re.search(r'\b{}\b'.format(word), sent)])
# => ['The U.S. Tax Act imposed a mandatory one-time tax on accumulated earnings of foreign subsidiaries and changed how foreign earnings are subject to U.S. tax.']

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

Python:如何根据另一列元素明智地查找一列中的空单元格计数? - python

df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 'income…