文字列の間の抜き出しに手間取ったので、メモ。
経緯
文字列の前後が固定で、間にある文字を抜き出す
例:
下記を連結したファイル名や定数からサービス名部分を抜き出したい
COMPANY_SERVICE_OPTION
※命名規則がサービス会社_サービス名_OPTION
パターン1
こちらを参考にして取得
"COMPANY_SERVICE_OPTION".slice(/COMPANY_(.+)_OPTION/)
puts $+
SERVICE
「$+」はRubyの組み込み変数で他にもいろいろとある模様。
しかしながら、非推奨との記載もちらほら見かけたため下記パターン2を使用した。
パターン2
こちらのgsub記載を参考にして取得
puts "COMPANY_SERVICE_OPTION".gsub(/COMPANY_(.+)_OPTION/,'\+')
SERVICE
パターン3(追記)
"COMPANY_SERVICE_OPTION".match(/COMPANY_(.+?)_OPTION/)[1]
SERVICE
以上です。
いいねやQiitaやTwitterのフォローいただけると励みになります!
他にも方法がありましたら、コメントお待ちしております。
宜しくお願いします〜
参考
正規表現で間の文字列を抜き出したい
[Ruby] Kernelの特殊変数をできるだけ$記号なしで書いてみる
String - Rubyリファレンスマニュアル