Ruby регулярное выражение для разбора подчеркивания как курсив - PullRequest
1 голос
/ 26 января 2012

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

string = 'this should have _emphasis_ but this_one_should_not'
string.gsub!(%r{ (\*|_) (\S|\S.*?\S) \1 }x, %{<em>\\2</em>})
string.should == 'this should have <em>emphasis</em> but this_one_should_not'

# actual = 'this should have <em>emphasis</em> but this<em>one</em>should_not'

Тот, у кого курсив посередине, неправильно отображается курсивом. Я скопировал этот код откуда-то еще, но мне нужно настроить его так, чтобы он работал для этого варианта использования.

1 Ответ

2 голосов
/ 26 января 2012

Вот тот, который работает:

string = 'this should have _emphasis_ but this_one_should_not'
string.gsub!(%r{(^|\s)([*_])(.+?)\2(\s|$)}x, %{\\1<em>\\3</em>\\4})
string.should == 'this should have <em>emphasis</em> but this_one_should_not'

И вот демо .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...