python - 正则表达式魔法,有了它,VS Code 毁了我的整个 Jupyter Notebook
问题描述
我不小心碰到了正则表达式来解决这个小谜团,然后我的笔记本在处理它时爆炸了(感谢 VS 代码),我正在尝试重新创建它。
示例文本是我的正则表达式在BOLD中捕获的内容:
['03/11/2009 起诉书已提交。向 LORAIN 县治安官发出的带有起诉书副本的传票。持有毒品的起诉书,2925.11(A),F-5;毒品相关犯罪,2925.14(C) (1),M-4;吸毒,2925.11(A),MM'],["2009 年 3 月 16 日返回警长的返回 - 我在 2009 年 3 月 12 日为被告提供了居住服务,PHIL R. STAMMITTI,警长"],['03 /19/2009 提审被告被提审。放弃阅读起诉书,提出无罪抗辩。债券续订。 2901.07 并且在收集到合适的 DNA 样本之前不得发布。'],['2016 年 12 月 15 日已发行债券:JC 保释债券(美国)发行 4,000 美元保证金']
我的意图是捕获所有修改后的代码部分(下面的示例格式),出现在短语“INDICTMENT FILED”之后,直到之后出现的第一个“]”。问题是,修改后的代码段可以有这些不同的格式:
2913.1, 2913.12, 2913.123, 2913.1234, 2913.1(A), 2913.12(A)(1)
另外,我当前的正则表达式确实获取了修改后的代码部分的编号,并没有获取所有种类的括号内容(我在下面的正则表达式当前匹配的内容中加粗了),不幸的是,正在获取第二个加粗部分(其中我不想)。我需要第一次列出短语“INDICTMENT FILED”,以及该字符串中该短语之后的所有修订代码部分,直到找到“]”然后停止匹配。
到目前为止,这是我的正则表达式,它并没有完全工作。我已经解决了这个问题,它只匹配我想要的东西,然后,你知道,计算机,而不是每 30 秒备份一次,然后 blammo,我来了。我的正则表达式:
(\d{4}\.\d{1,4}.*?\))
解决方案
你快到了!你的正则表达式的问题是,在它之后\d{1,4}
,它匹配.*?
=任何东西,直到它看到一个)
. 当 之后的括号中没有任何内容时2901.07
,它将匹配所有内容,直到)
结尾的下一个AMERICAN)
。
这是我想出的:
\d{4}\.\d{2}(?:\(\w+\))*
在这里试试
解释:
\d{4}\.\d{1,4}
:4个数字,句号,1-4个数字(你有这部分)(?: ... )*
:*
= 本组零个或多个。?:
表示不要将其捕获为编号组\(\w+\)
: 文字(
后跟 1 个或多个单词字符,后跟文字)
推荐阅读
- ruby - 当我指定“chromedriver”时,为什么水豚正在寻找“Mozilla geckodriver”?
- css - 使用 :after 和 :before 时获取空格
- assembly - 如何在 nasm 操作系统中填充屏幕
- sql-server - 在 SQL Server syspolicy_purge_history 作业中,第 3 步失败
- pandas - 在分组数据帧上计算分位数的最快方法是什么?
- node.js - 如何检查文件是否正在使用 multer 上传
- node.js - 如果使用猫鼬在node.js中mongo连接失败,如何自动重新连接?
- sed - 查找并替换为相同的通配符
- c# - 如何从 .json 文件中获取特定值
- node.js - 如何使用 TypeScript 在 express 中键入 app.get('/events', (req, res)