2016-06-23 2 views
-5

Мне нужно регулярное выражение, которое может исключить начало и конец строки. Например, я:удалить начало и конец строки с помощью регулярного выражения

<br><br><br>hi how are you<br><br><br>hi how are you<br>hi how are you<br>hi how are you<br><br><br><br> 

нужно удалить начало и конец, и просто держать <br> в начале строки и конец

<br>hi how are you<br><br><br>hi how are you<br>hi how are you<br>hi how are you<br> 
+2

Добро пожаловать в Stackoverflow! Пожалуйста, объясните, что вы пробовали, и где у вас проблемы. – Candide

+2

, если вам нужно регулярное выражение - напишите его; когда у вас есть вопрос - спросите. – Drako

+0

Я добавил второй способ сделать это. –

ответ

2
str = " <br><br><br>hi how ru<br><br><br>hi how ru<br>hi how ru<br><br><br><br>" 

r =/
    \A   # match beginning of string 
    (?:<br>)+ # match <br> one or more times 
    (?=<br>) # match <br> in a positive lookahead 
    |   # or 
    (?<=<br>) # match <br> in a positive lookbehind 
    (?:<br>)+ # match <br> one or more times 
    \z   # match end of string 
    /x   # free-spacing regex definition mode 

str.strip.gsub(r,"") 
    #=> "<br>hi how ru<br><br><br>hi how ru<br>hi how ru<br>" 

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

(str.strip).sub(/(?:<br>)+/, "<br>").reverse.sub(/(?:>rb<)+/, ">rb<").reverse 
    #=> "<br>hi how ru<br><br><br>hi how ru<br>hi how ru<br>" 
+1

Я бы «разделил» это, чтобы быть в безопасности. Но, да, это самое элегантное решение, о котором я мог думать. – mudasobwa

+1

@mudasobwa, спасибо за предложение. –

Смежные вопросы