我偶然发现了正则表达式来解开这个小谜团,然后我的笔记本在工作时爆炸了(感谢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}.*?\))
你就快到了!正则表达式的问题是在
\d{1,4}
之后,它匹配.*?
=任何东西,直到它看到一个)
。当2901.07
后面的括号中没有任何内容时,它将匹配所有内容,直到AMERICAN)
末尾的下一个)
以下是我的想法:
\d{4}\.\d{2}(?:\(\w+\))*
试试看here
说明:
\d{4}\.\d{1,4}
:4个数字,句号,1-4个数字(你有这个部分)(?: ... )*
:*
=此组的零个或多个?:
表示不将其捕获为编号的组\(\w+\)
:文字(
后跟一个或多个单词字符,后跟文字)
相关问题 更多 >
编程相关推荐