Ruby заменяет текст внутри одинарных кавычек или обратных кавычек для HTML-тега - PullRequest
0 голосов
/ 31 марта 2011

Здравствуйте, я пытаюсь создать простое действие в Ruby, которое принимает одну строку, как

result = "This is my javascript variable 'var first = 1 + 1;' and here is another 'var second = 2 + 2;' and that's it!"

Так что, в основном, я хотел бы взять текст в одинарных кавычках ' или обратных галочках ` и заменить его на:

<code>original text примечание Я заменяю его открывающим и закрывающим тегом code

Как в уценке

поэтому у меня был бы результат, подобный

result = "This is my javascript variable <code>var first = 1 + 1;<code> and here is another <code>var second = 2 + 2; и все "

Если бы можно было запускать это без необходимости каких-либо дополнительных самоцветов, было бы здорово:)

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 31 марта 2011

Полагаю, вам нужно будет повторить строку и проанализировать ее.Хотя вы можете выполнять не жадные совпадения с регулярными выражениями, например, result.gsub!(/'([^']*)'/, '<code>\1 ') , вы можете обнаружить, что результат может работать неправильно в угловых случаях.

1 голос
/ 31 марта 2011

Вам потребуется придумать символ в качестве разделителя для вашего кода, который вы не используете в противном случае ..

Почему? из-за всех угловых случаев. Например. следующая строка

result = "This's my javascript variable 'var first = 1 + 1;' and here is another 'var second = 2 + 2;' and that's it!"

, который иначе произвел бы:

"This<code>s my javascript variable </code>var first = 1 + 1;<code> and here is another </code>var second = 2 + 2;<code> and that</code>s it!"

Всего мусора ..

Однако, если вы используете уникальный символ в качестве разделителя, который в противном случае не используется, вы можете создать не жадный RegExp, который будет выполнять поиск / замену

например. используя символ # для разделения кода:

  "This's my javascript variable #var first = 1 + 1;# and here is another #var second = 2 + 2;# and that's it!"
1 голос
/ 31 марта 2011

Без каких-либо дополнительных предварительных требований

>> result.gsub(/\s+'/,"<code>").gsub(/'\s+/,"</code>")
=> "This is my javascript variable<code>var first = 1 + 1;</code>and here is another<code>var second = 2 + 2;</code>and that's it!"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...