2016-06-23 17 views
-5

文字列の先頭と末尾を排除できる正規表現が必要です。私が持っている例:私は最初と最後を削除し、単なる文字列の先頭に<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

Welcome to Stackoverflow!あなたが試したこととどこに問題があるのか​​を説明してください。 – Candide

+2

正規表現が必要な場合は書き込みます。あなたは質問があるときに尋ねる。 – Drako

+0

私はそれを行うもう1つの方法を追加しました。 –

答えて

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

を終了する必要が

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

は別の方法で、1であります正規表現は使用しません。

(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、提案のおかげで。 –

関連する問題