Regex - соответствие строки, но что-то не так с / m? - PullRequest
0 голосов
/ 19 ноября 2010

Я бы попытался сопоставить первый из следующих типов строк в электронном письме:

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

On Thu, Nov 18, 2010 at 8:21 PM, SiteName <notification@SiteName.com> wrote:

Первая строка соответствует правильно, но 2-я не соответствует.вот что у меня есть:

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

Я не могу понять, почему 2-я строка дает ошибку.Идеи?

Ответы [ 2 ]

2 голосов
/ 19 ноября 2010

Для второй строки вам нужно:

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

, которыйдоходность

"Holla"

Разве это не то, что вы хотите?

1 голос
/ 19 ноября 2010

После 'Чт' есть запятая, и вы не учитываете это.

edit:

Есть ли какая-то причина, по которой он так специфичен?Почему бы просто не сопоставить и не заменить: /^On.*at.*wrote:/

отредактируйте еще раз:

поэтому, посмотрев на вашу пастинку, я думаю, что вы хотите:*

, который уберет стрелки в начале строки, в самой строке и в конце строки, поэтому она должна выглядеть следующим образом:

> 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
>>
>
...