用更全面的字符串示例编辑的问题
试图找到一个正则表达式,如果后跟短语^{
“起诉2903.04.A非自愿PLD GLTY@TRL陪审团”、“起诉2903.01.B加重NOLLE”、“起诉2911.01抢劫PLD GLTY@TRL陪审团”、“起诉2905.01.A(2)NOLLE”、“起诉2903.02.B NOLLE”、“起诉2911.02.A(2)NOLLE”、“起诉2903.111.A(1)重罪殴打PLD GLTY”、“起诉2913.05抢劫PLD GLTY@TRL陪审团”、“起诉2923.13.A(3)在残疾期间拥有武器PLD GLTY'
预期结果(理想情况下放入python列表)
['2903.04','2911.01','2903.111','2913.05','2923.13']
部分有效的样本
最有效的示例
29..\...+(?=PLD GLTY)
效果更好,但仍然捕获太多
\d{4}\.\d{2}(.*PLD GLTY)
就快到了,还没到
(\d{4}\.\d{2}\d?)(.*PLD GLTY)
我们的目标是将上述列中的文本提取出来,仅从文本中提取被告认罪的数字法规
谢谢你们所有的正则表达式向导们的帮助
我想把你的问题表述为:
这张照片是:
正则表达式逻辑要求找到每个具有属性的十进制数,我们可以向前看,而不必看到另一个数字,然后在字符串的后面某处找到文本
PLD GLTY
(这是一个扩展的评论,而不是一个答案。请不要投票,否则我可能不得不再次删除它。)
问题中给出的示例字符串不足以测试给出的解决方案是否会确保输出中只包含
PLD GLTY
出现之前的最后一个数字使用此字符串:
显然,您希望它返回:
['2913.42', '2913.405']
在撰写本文时,共有三个答案,其中只有一个通过了该测试,尽管使用问题中给出的测试字符串,所有三个都通过了测试
你就快到了。我刚刚修改了您的前瞻示例,添加了一个非贪婪的
.*
和一些细微的调整:代码:
d{2}\d?
最好写成\d{2,3}
(数字总是出现2到3次)^{} 是Python中内置的,因此建议不要将其用作变量名、自定义函数名或其他任何名称,尽管我在这里使用它来匹配您的代码
相关问题 更多 >
编程相关推荐