我偶然发现了解决这个小谜团的正则表达式,然后我的笔记本在它的工作中爆炸了(谢谢和代码),我正在尝试重新创建它。
示例文本是我的regex在粗体中捕获的内容。
2009年11月3日起诉书提交。传票W/向洛兰县警长发出的起诉书副本。对毒品的起诉,2925.11(A),F-5;毒品工具犯罪,2925.14(C)(1),M-4;POSS,2925.11(A),M-M',“03/16/2009号归还治安官的返回--我为被告提供了居留服务: 3/12/09,PHIL . STAMMITTI,警长”,'03/19/2009传讯被告。放弃对起诉书的宣读,提出无罪抗辩。邦德继续。**2901.07,在收集到合适的DNA样本之前,不得予以释放。“,2016年12月15日发出的保证书:由JC保释金(美国)**发出的4,000美元保证金。”
我的意图是捕捉所有修改后的代码部分(下面的代码部分的格式),这些部分发生在“起诉提交”到第一个]之后。问题是,修改后的代码部分可以有以下几种格式:
2913.1, 2913.12, 2913.123, 2913.1234, 2913.1(A), 2913.12(A)(1)另外,我当前的正则表达式(它确实获取了修改后的代码节的数量)并没有抓住其所有类型的括号内容(我已经用粗体显示了下面的regex当前匹配的内容),而且不幸的是,我正在抓取第二个粗体部分(我不想要)。我需要第一次列出“起诉归档”这一短语,并在该字符串中该短语后面的所有修订代码节中找到"]“,然后停止匹配。
到目前为止,这是我的准则,它还没有完全起作用。我已经解决了这个问题,它只是匹配我想要的,然后,你知道,电脑,而不是每30秒备份一次,而布拉莫,我在这里。我的审判官:
(\d{4}\.\d{1,4}.*?\))发布于 2020-08-24 05:16:22
你差点就到了!正则表达式的问题是,在\d{1,4}之后,它会匹配.*? = anything,直到它看到)为止。当在2901.07之后没有括号中的任何内容时,它将匹配所有内容,直到AMERICAN)末尾的下一个)。
我想出的是:
\d{4}\.\d{2}(?:\(\w+\))*
试试吧,这里
解释:
\d{4}\.\d{1,4}:4个数字,句号,1-4个数字(你有这个部分)(?: ... )*:* =这个组中的零或更多。?:的意思是不要将它捕获为一个编号的组\(\w+\):文字(后面跟着一个或多个单词字符,后面跟着文字)https://stackoverflow.com/questions/63554366
复制相似问题