Techioz Blog

正規表現 - 行は一致しますが、/m に問題がありますか?

概要

電子メール内の次のタイプの文字列の最初の文字列と一致させようとしています。

On Nov 18, 2010, at 8:21 PM, SiteName wrote:

On Thu, Nov 18, 2010 at 8:21 PM, SiteName <[email protected]> wrote:

最初の行は正しく一致しますが、2 行目は一致しません。私がこれまでに持っているものは次のとおりです:

mystring.sub(/^On \w+ \d+, \d+, at.* wrote:.*/m, '').strip

2行目でエラーが発生する理由がわかりません。アイデアは?

解決策

2 行目には以下が必要です。

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 <[email protected]>wrote:
> testttttttt
>
> On Thu, Nov 18, 2010 at 8:47 PM, Brett Hellman <[email protected]> wrote:
>>
>> Thanks for setting this up
>>
>> On Thu, Nov 18, 2010 at 8:46 PM, CompanyLine <[email protected]> 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

結果が得られる

"Holla"

これはあなたが望んでいることではありませんか?