こんにちは
秀丸の正規表現でうまくいかないことがあって質問します。
テキストファイルの中で複数行にわたるコメントアウト部分があります。
/* たとえばここから
ここまでの間が
コメントアウトに
なっている
複数行です */
こうした複数行にわたるコメントアウトを一括で削除したいのですがうまい方法が見つかりません。
「/\*.*\n」で1行目を指定して、その後に続けて「(.*[^(*/)]\n)*」としてみました。
「([^(*/)]*\n)*」は、任意の文字列の後に */ 以外の文字に続いて改行があるパターンを複数回指定しているつもりですが、上記の例だと「/\*.*\n([^(*/)]*\n)*」でヒットするのは「コメントアウトに」の部分までです。この正規表現の最後のアスタリスクを{0,}や{3,10}などに変えても結果は同じです。これを「/\*.*\n([^(*/)]*\n)*([^(*/)]*\n)*」のように繰り返すともう1行多くヒットするのですが、繰り返し回数を無制限にして一括で削除する方法にはなりません。
改行をまたぐと最長マッチにならないのでしょうか?
あるいは、いったん改行をファイルに出現しない文字(たとえば★など)に置き換えて、/*から*/を削除した後で★を改行に戻すのが実践的なやりかたなのでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
すみません、No.3のやり方では
/*comment*/
program
/*comment*/
の場合のprogram行まで削除してしまいますね。
量子指定* を控えめマッチ指定*?に変更してお試しください。
No.3
- 回答日時:
秀丸のヘルプの正規表現の記述によるとVer8.00以降で、かつ、コメント行の最大値に制限がありますが以下でできそうです。
(?#maxlines:10)/\*(.*\n)*.*\*/
この例ではmaxlines:10としているので改行が10個、つまり最大11行のコメントまで削除可能です。
ご参考まで。
No.2
- 回答日時:
直接的な回答ではありませんが、コメントを削除するツールがいくつかありますので、それを使用されてはいかがでしょうか。
http://www.vector.co.jp/soft/win95/prog/se451469 …
http://www.vector.co.jp/soft/win95/prog/se414076 …
上記はC/C++のコメント削除用ツールです。
No.1
- 回答日時:
秀丸の正規表現は詳しくないから何が起きているのかとかどう指定すればいいのかとかはわからんけど, 少なくとも
「([^(*/)]*\n)*」
が
「任意の文字列の後に */ 以外の文字に続いて改行があるパターンを複数回指定している」
ことにならないことは分かる.
[^(*/)]
は
「(, *, /, ) 以外の文字」
って意味だから.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- フリーソフト サクラエディタの正規表現(grep機能)の使い方 3 2022/06/22 10:29
- Excel(エクセル) Excelの複数置換はSUBSTITUTEを重ねるしかない? 9 2022/05/08 11:25
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Access(アクセス) AccessVBAで任意の複数リンクテーブルをAccessVBAを動かす際に削除したいと考えておりま 1 2022/11/17 15:45
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- 英語 関係代名詞「非制限用法」が説明する先行詞が無冠詞複数形の場合「一般的総称」と見なすことの可否について 10 2022/07/20 10:19
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
【お題】ヒーローの謝罪会見
【大喜利】 怪人の侵略に気づくのが遅れ、それを防げなかった戦隊ヒーローの謝罪会見で出た発言
-
ちょっと先の未来クイズ第5問
日本漢字能力検定協会が主催し、12月12日に発表される、2024年の「今年の漢字」に選ばれる漢字一文字は何でしょう?
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
サクラエディタは複数行に渡る文字列の正規表現検索はできますでしょうか?
フリーソフト
-
C言語のコメントを「正規表現」表すには?
その他(コンピューター・テクノロジー)
-
秀丸で複数行コメントアウトを、正規表現で削除したい
その他(プログラミング・Web制作)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
改行を読み飛ばす
-
VBA テキストボックスの行数取得
-
【VBA】エクセルで最後の不要な...
-
C# DataGridViewのセルを改行禁...
-
delphi でのコード上でTab を入...
-
秀丸の正規表現で複数行にわた...
-
最終行の改行について
-
PHPで出力したHTMLのソースが汚い
-
改行について
-
C# csvでセル内で改行するには
-
JAVA Spring 改行コードを含む...
-
改行コード(CR/LF)の設...
-
JavaMail,本文中の改行について
-
C#の改行について
-
テキストファイル内の改行について
-
コンボボックスの項目中に改行を
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
最終行の改行について
-
【VBA】エクセルで最後の不要な...
-
変数の中の改行コードをBRタグ...
-
テキストファイルから改行コー...
-
ファイルから読み取った改行文...
-
COBOLの改行
-
エクセルVBA 文字列領域が不足...
-
C++で空Enterの入力を判...
-
JavaMail,本文中の改行について
-
コンボボックスの項目中に改行を
-
改行について
-
C# DataGridViewのセルを改行禁...
-
JavaDoc コメントの改行について
-
VBAでCSVをExcelに取り込む時に...
-
jsp 改行コードで改行させて表...
-
エディットボックスで改行
-
awkで改行を除いて文字列を抜き...
おすすめ情報