- Regular Expression(正規表現) Part13©2ch.net
593 :デフォルトの名無しさん[]:2016/03/07(月) 14:11:54.25 ID:oj83hPpT - # .*? の、? は最短マッチ
str = File.read('File1').gsub(/^=begin.*?^=end/m, '') =begin 複数行コメント =end Rubyで、行頭=begin 〜 行頭=end で囲んだ、複数行コメントの部分を、複数行の最短マッチで削除したいのですが、=end の同じ行内で、 後ろに書いた、改行以外の部分もついでに削除したい。以下の ' ABC' =begin 複数行コメント =end ABC
|
- Regular Expression(正規表現) Part13©2ch.net
594 :デフォルトの名無しさん[sage]:2016/03/07(月) 14:26:17.00 ID:oj83hPpT - >>591-592
木構造を持っているものは、正規表現では無理なので、Parserを使う
|
- Regular Expression(正規表現) Part13©2ch.net
595 :593[sage]:2016/03/07(月) 14:43:24.76 ID:oj83hPpT - >>593 自己レス
# .*? の、? は最短マッチ str = File.read('File1').gsub(/^=begin.*?^=end/m, '#') str.gsub!(/^#.*$/, '') 元々、行頭が # の行も削除するので、 いったん、複数行コメントの部分を、# に置換してから、 行頭が # の行を削除するようにした =begin 複数行コメント =end ABC これが、以下に置換される # ABC
|
- Regular Expression(正規表現) Part13©2ch.net
597 :593[sage]:2016/03/07(月) 18:33:50.83 ID:oj83hPpT - >596
# .*? の、? は最短マッチ str = File.read('File1').gsub(/^=begin.*?^=end.*$/m, '') 複数行マッチで、$ を使ったら、ファイルの最後まで削除された。 以下で、' ABC' だけではなく、'123' も削除された。 たぶん、$ が機能しないで、無視される =begin 複数行コメント =end ABC 123
|
- MacでもLinuxでも使えるVisual Studio Code [転載禁止]©2ch.net
139 :デフォルトの名無しさん[sage]:2016/03/07(月) 19:02:09.67 ID:oj83hPpT - >>131
Atom, Visual Studio Code は、Electron を使っている。 Electron(旧Atom-Shell)とは、Node.js + Chromium 世の中には、Electronでアプリを配布する、富豪もいるのだよw
|
- Regular Expression(正規表現) Part13©2ch.net
599 :593[sage]:2016/03/07(月) 20:46:34.99 ID:oj83hPpT - >598
改行コードが、[\r\n]限定で、それで出来ました。 gsub(/^=begin.*?[\r\n]=end[^\r\n]+/m, '') =begin 複数行コメント =end ABC 123 これで、ABCも削除されて、123だけが残ります
|