Regex 使用不带尾随字符的正则表达式进行解析
我怎样才能成功地解析下面的文本,以这种格式进行解析呢Regex 使用不带尾随字符的正则表达式进行解析,regex,parsing,Regex,Parsing,我怎样才能成功地解析下面的文本,以这种格式进行解析呢 To: User <test@test.com> 收件人:用户 及 至: 当我试图用 /To:.*<[A-Z0-9._+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}>/mi /To:.*/mi 它抓住 Message-ID <CC2E81A5.6B9%test@test.com>, 消息ID, 我不想在我的回答中这样 我尝试过使用$and\z,但都没有成功。我做错了什么 要分析的
To: User <test@test.com>
收件人:用户
及
至:
当我试图用
/To:.*<[A-Z0-9._+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}>/mi
/To:.*/mi
它抓住
Message-ID <CC2E81A5.6B9%test@test.com>,
消息ID,
我不想在我的回答中这样
我尝试过使用$and\z,但都没有成功。我做错了什么
要分析的信息
To: User <test@test.com> Message-ID <CC2E81A5.6B9%test@test.com>
To:
<test@test.com>
收件人:用户消息ID
致:
这是我在Rubular中的解析信息您需要通过在通配符后面添加问号来使通配符匹配非贪婪:
To:.*?<[A-Z0-9._+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}>
到:*?
由于您尚未明确指定您的工具/语言是什么,因此必须做出假设
一般来说,正则表达式模式匹配往往是积极的,匹配可能最长的模式。您的模式以*
开头,这意味着您将匹配以模式剩余部分
结尾的最长字符串,该字符串与消息ID
中的
匹配
阿帕拉拉和NHAHDH的评论都给了你一些可以尝试的东西。开始时避免使用包罗万象的
*
,使用更具体的方法:匹配前导空格,或者匹配除第一部分以外的任何你真正感兴趣的内容。也许这就是你想要的<代码>/To:[^/i?虽然这里做了很多假设。哇,我一直在做错事。这正是我需要的。非常感谢。你能把这作为答案,这样我就可以接受吗?这对我来说完全有意义。你能解释一下吗[^正在做什么?我真的不明白,尽管答案可能是我能得到的最好的答案。[^谢谢你。我将得出结论,NHAHDH的答案是最好的,但是你解释一下。
To:.*?<[A-Z0-9._+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}>