Ruby 正则表达式-匹配一行,但/m有问题吗?
我试图在电子邮件中匹配以下字符串类型中的第一种:Ruby 正则表达式-匹配一行,但/m有问题吗?,ruby,regex,pattern-matching,Ruby,Regex,Pattern Matching,我试图在电子邮件中匹配以下字符串类型中的第一种: On Nov 18, 2010, at 8:21 PM, SiteName wrote: On Thu, Nov 18, 2010 at 8:21 PM, SiteName <notification@SiteName.com> wrote: 我不明白为什么第二行出错。想法?对于您需要的第二行: mystring.sub(/^On \w+, \w+ \d+, \d+ at.* wrote:.*/m, '').strip 因此,您
On Nov 18, 2010, at 8:21 PM, SiteName wrote:
On Thu, Nov 18, 2010 at 8:21 PM, SiteName <notification@SiteName.com> wrote:
我不明白为什么第二行出错。想法?对于您需要的第二行:
mystring.sub(/^On \w+, \w+ \d+, \d+ at.* wrote:.*/m, '').strip
因此,您可以使用:
mystring.sub(/^On \w+(, \w+)? \d+, \d+,? at.* wrote:.*/m, '').strip
因此,我尝试以下脚本:
puts "Holla
On Thu, Nov 18, 2010 at 8:41 PM, SiteNameHere <notification@mylongsitename.com>wrote:
> testttttttt
>
> On Thu, Nov 18, 2010 at 8:47 PM, Brett Hellman <bhellman1@gmail.com> wrote:
>>
>> Thanks for setting this up
>>
>> On Thu, Nov 18, 2010 at 8:46 PM, CompanyLine <notification@companyline.com> wrote:
>>>
>>> Steve Apple has created a new conversation on CompanyLine: Test 3 Regex issues
>>>
>>> The following people have been added as participants:
>>>
>>> - Steve Apple
>>> - Brett Hellman
>>
>".sub(/^On \w+(, \w+)? \d+, \d+,? at.* wrote:.*/m, '').strip
这不是您想要的吗?对于您需要的第二行:
mystring.sub(/^On \w+, \w+ \d+, \d+ at.* wrote:.*/m, '').strip
因此,您可以使用:
mystring.sub(/^On \w+(, \w+)? \d+, \d+,? at.* wrote:.*/m, '').strip
因此,我尝试以下脚本:
puts "Holla
On Thu, Nov 18, 2010 at 8:41 PM, SiteNameHere <notification@mylongsitename.com>wrote:
> testttttttt
>
> On Thu, Nov 18, 2010 at 8:47 PM, Brett Hellman <bhellman1@gmail.com> wrote:
>>
>> Thanks for setting this up
>>
>> On Thu, Nov 18, 2010 at 8:46 PM, CompanyLine <notification@companyline.com> wrote:
>>>
>>> Steve Apple has created a new conversation on CompanyLine: Test 3 Regex issues
>>>
>>> The following people have been added as participants:
>>>
>>> - Steve Apple
>>> - Brett Hellman
>>
>".sub(/^On \w+(, \w+)? \d+, \d+,? at.* wrote:.*/m, '').strip
这不是你想要的吗?在“Thu”后面有一个逗号,你没有考虑到这一点 编辑: 有什么理由这么具体吗?为什么不匹配并替换:
/^On.*at.*编写:/
再次编辑:
因此,在看了你的粘贴盒后,我认为你想要的是:
string.gsub(/\>+\sOn.*at.*写入:\s/,“”)
这将清除线开始处的箭头、线本身和线结束处的箭头,因此它应该如下所示:
> testttttttt
>
>>
>> Thanks for setting this up
>>
>>>
>>> Steve Apple has created a new conversation on CompanyLine: Test 3 Regex issues
>>>
>>> The following people have been added as participants:
>>>
>>> - Steve Apple
>>> - Brett Hellman
>>
>
“Thu”后面有一个逗号,你没有考虑到这一点 编辑: 有什么理由这么具体吗?为什么不匹配并替换:
/^On.*at.*编写:/
再次编辑:
因此,在看了你的粘贴盒后,我认为你想要的是:
string.gsub(/\>+\sOn.*at.*写入:\s/,“”)
这将清除线开始处的箭头、线本身和线结束处的箭头,因此它应该如下所示:
> testttttttt
>
>>
>> Thanks for setting this up
>>
>>>
>>> Steve Apple has created a new conversation on CompanyLine: Test 3 Regex issues
>>>
>>> The following people have been added as participants:
>>>
>>> - Steve Apple
>>> - Brett Hellman
>>
>
以下是刚刚失败的一句话:“2010年11月18日星期四晚上8:41,SiteNameHere写道:“/m做什么?我在文档中找不到
m
代表多行-如果您不提供它,
将不匹配换行符(\n
)。此外,如果您一直面临问题,您可能需要发布更多信息/代码,以便我们可以看到问题出在哪里,您想做什么。@Jakub,它在发送HTML电子邮件时与GMAIL分道扬镳,而在发送纯文本电子邮件时,GMAIL的工作方式很好。也许需要断线才是问题所在/^那么,您是否也需要gsub
而不是sub
?还有,
字符不是引起了一些问题吗?下面是刚刚失败的一句话:“2010年11月18日星期四晚上8:41,SiteNameHere写道:/m做什么?我在文档中找不到m
代表多行-如果您不提供它,
将不匹配换行符(\n
)。此外,如果您一直面临问题,您可能需要发布更多信息/代码,以便我们可以看到问题出在哪里,您想做什么。@Jakub,它在发送HTML电子邮件时与GMAIL分道扬镳,而在发送纯文本电子邮件时,GMAIL的工作方式很好。也许需要断线才是问题所在/^那么,您是否也需要gsub
而不是sub
?
字符不是也会引起一些问题吗?re5et,似乎还有更多问题,请参见下文。有什么想法吗?谢谢re5et,似乎还有更多的事情发生,见下文。有什么想法吗?谢谢