regex魔法,让它和VS代码毁掉了我的整个Jupyter笔记本

2024-05-18 23:44:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我偶然发现了正则表达式来解开这个小谜团,然后我的笔记本在工作时爆炸了(感谢VS代码),我正试图重新创建它

示例文本是我的正则表达式在粗体中捕获的:

['03/11/2009起诉书已提交。传票和向洛林县治安官发出的起诉书副本。对毒品拥有者的起诉书,2925.11(A),F-5;毒品工具犯罪,2925.14(C)(1),M-4;毒品拥有者,2925.11(A),M'][“2009年3月16日返回警长返回-我于2009年3月12日为被告提供了居留服务,PHIL R.STAMMITTI,警长”],[“2009年3月19日传讯被告被传讯。放弃阅读起诉书,进入无罪抗辩状态。邦德继续。2901.07,在收集到合适的DNA样本之前不得释放。”,['2016年12月15日债券过账:JC保释债券(美国)过账的4000美元担保债券']

我的目的是捕获所有修订的代码部分(下面的示例格式)出现在短语“已提交起诉”之后,直到随后出现的第一个“]”。问题是,修订的代码部分可以有以下各种格式:

2913.1, 2913.12, 2913.123, 2913.1234, 2913.1(A), 2913.12(A)(1)

另外,我现在的正则表达式确实抓住了修订代码部分的编号,但没有抓住所有种类的附加内容(我在下面的正则表达式中使用了黑体),不幸的是,它抓住了第二个黑体部分(我不想要)。我第一次需要短语“起诉文件”将列出,并且该字符串中该短语后面的所有修订代码部分将一直显示,直到找到“]”为止,然后停止匹配

这是我的正则表达式到目前为止,它不是完全工作。我已经解决了这个问题,它只匹配了我想要的,然后,你知道,计算机,而不是每30秒备份一次,还有,该死的,我来了。我的正则表达式:

(\d{4}\.\d{1,4}.*?\))

Tags: 代码示例格式笔记本vs毒品债券正试图
1条回答
网友
1楼 · 发布于 2024-05-18 23:44:17

你就快到了!正则表达式的问题是在\d{1,4}之后,它匹配.*?=任何东西,直到它看到一个)。当2901.07后面的括号中没有任何内容时,它将匹配所有内容,直到AMERICAN)末尾的下一个)

以下是我的想法:

\d{4}\.\d{2}(?:\(\w+\))*

试试看here

说明:

  • \d{4}\.\d{1,4}:4个数字,句号,1-4个数字(你有这个部分)
  • (?: ... )**=此组的零个或多个?:表示不将其捕获为编号的组
  • \(\w+\):文字(后跟一个或多个单词字符,后跟文字)

相关问题 更多 >

    热门问题