秀丸で正規表現

ソフトウェア秀丸エディタ

概要

 状態:-  閲覧数:8,914  投稿日:2011-01-29  更新日:2016-11-08
任意の文字列の中から、開始語と終了語を指定して、文字列を抜き出す


・任意の文字列/hoge/piyo/puyo/pipipi.html任意の文字列

やりたいこと
・/hoge/で始まり、.htmlで終わる文字列を抜き出したい

正規表現
/hoge/.*?\.html



解説


. ピリオド
・改行を除く任意の一文字を表す

* アスタリスク
・直前の文字列やメタ文字の「0回以上の繰り返し」を表す

? クエスチョン
・直前の文字列やメタ文字の「0回もしくは1回の出現」を表す
・最短一致記号
※使われる場所によって、意味が異なる

.*
・限りなく連続した文字を表す

.+
・限りなく連続した文字を表す


短長


最短一致と最長一致
・標準では最長一致が適用されるので、最短一致をしたい場合には、 明示的に指示する必要がある

*?
・0回以上のくり返し(最短一致)

*
・0回以上のくり返し(最長一致)

○○.*?△△
・ここでの?の意味は、○○で始まり、△△で終わる文字列の最短一致

事例集

 閲覧数:718 投稿日:2013-05-06 更新日:2015-10-12

^\n


空行検索
^\n


改行だけの空行を削除
・置換ダイアログ使用
・「検索→置換」の「検索」エディットボックスに「^\n」、「置換」エディットボックスに「」(空白にする)、「正規表現」チェックボックスをONにして全置換実行


^#\n


行頭#で後に何もない行を検索
^#\n



^.+分前


行頭**分前で後に何もない行を検索
^.+分前\n



.+?‎


先頭半角空白ないバージョン
.+?‎ 



^Twitter -


行頭Twitter -
^Twitter -



^ [^ ]+


行頭に半角スペースが1個あり、半角スペース以外の文字が1個以上続き、半角スペースがその次に来る
^ [^ ]+ 



閉じる$


行末文字列が「閉じる」
・「閉じる」3文字だけを検索選択
閉じる$



.*閉じる$


行末文字列が「閉じる」
・行末が「閉じる」を検索し、該当行全体を選択
.*閉じる$



0+.+.+(?=jpg)


0で始まるjpg
0+.+.+(?=jpg)

・(1回以上の0)+(任意の文字を任意の回数)+(最後がjpg)
・この方法では、実際には400.jpgなども検索される


-webkit.*?\n


行頭が-webkitで開始する行を削除
・置換前
-webkit.*?\n

・置換後
置換後は何も指定しない


・削除後、行を詰める
・改行も削除


-webkit.*?$


行頭が-webkitで開始する行内容を削除
・置換前
-webkit.*?$

・置換後
置換後は何も指定しない


・削除後、行は詰めない
・改行を削除しないので、空白行となる


その他


改行絡みでうまくいかない場合は、次の一文字も含めるとうまくいく場合がある
・検索


                 
                 "

・置換
"

Twitter関連
(-| Fri, 11 Mar 2011).+?(Read it on Twitter)

\n・


‎ .+?‎ 



$‎ .+?‎ 


正規表現での検索結果を置換先で使用 … ()キャプチャする括弧

 閲覧数:705 投稿日:2014-12-02 更新日:2015-05-26

検索


「★で始まり SoftBank,」で終わる文字列の最短マッチ検出
★.*? SoftBank,


検出結果
★AQUOS CRYSTAL X SoftBank,
★シンプルスマホ2 SoftBank,
★Xperia Z3 SoftBank,



問題点
・マッチした内容を記憶していないので、置換する際、使用できない


置換


キャプチャする括弧利用
・マッチした内容を記憶
※()は置換する時点ではなく、検索する際に付与

「★で始まり SoftBank,」で終わる文字列の最短マッチ検出。マッチした内容を記憶
★(.*?) SoftBank,


検出結果
・検出結果自体は、()を使用しない場合と同一
★AQUOS CRYSTAL X SoftBank,
★シンプルスマホ2 SoftBank,
★Xperia Z3 SoftBank,



マッチした内容を記憶すると何が嬉しいの?
・置換する際、効力を発揮


事例1


「★で始まり SoftBank,」で終わる文字列の、 SoftBankだけを削除したい
・元データ
文字列★AQUOS CRYSTAL X SoftBank,文字列SoftBank
文字列★シンプルスマホ2 SoftBank,文字列SoftBank
文字列★Xperia Z3 SoftBank,文字列SoftBank



キャプチャ指定した上で検索
★(.*?) SoftBank,


置換
★\1,


結果
文字列★AQUOS CRYSTAL X,文字列SoftBank
文字列★シンプルスマホ2,文字列SoftBank
文字列★Xperia Z3,文字列SoftBank




秀丸で、正規表現キャプチャを利用して、置換をしたい


事例2


対象
<a href="/rule/read.cgi/ishimarugenshow/1264351368/">SPEED スピード</a>
<a href="/rule/read.cgi/kageyamatamio/1280005865/">YOU'VE GOT A FRIEND/トラブル・バスター2</a>


検索
<a href="/rule/read.cgi/.*?">(.*?)</a>


置換
\1

改行絡みでどうしてもうまくいかないとき

 閲覧数:590 投稿日:2015-04-09 更新日:2015-04-09

改行なし


<div class="box">.+*?</div>



改行あり


改行1回
<div class="box">.+*?\n.+*?</div>



改行2回
<div class="box">.+*?\n.+*?\n.+*?</div>



改行3回
<div class="box">.+*?\n.+*?\n.+*?\n.+*?</div>


「指定文字列から始まらない一行」を検索

 閲覧数:492 投稿日:2016-11-08 更新日:2016-11-08

「指定文字列から始まらない一行」を検索


VALUE
・検索したい文字列
^(?!VALUE).+$


具体例


進行状況 から始まらない一行を検索
^(?!進行状況).+$



「指定文字列から始まる一行」を検索

 閲覧数:637 投稿日:2016-11-08 更新日:2016-11-08

「指定文字列から始まる一行」を検索


VALUE
・検索したい文字列
^VALUE.*\n


具体例


「進行状況 から始まる一行」を検索
^進行状況.*\n



キャプチャ / 検索する側で()。置換する側で\1,\2。$1,$2ではないため注意が必要

 閲覧数:503 投稿日:2016-11-12 更新日:2016-11-12

内容


置換前
・<a href="任意の文字列">任意の内容</a>

置換後
<a href="任意の文字列">・任意の内容</a>


コード


置換前
・<a
置換後
<a

置換前
(<a href=".*?">)
置換後
\1・


CSV。列の一部を正規表現で取得して、隣の列へコピー

 閲覧数:487 投稿日:2017-10-02 更新日:2017-10-02

やりたいこと


修正前
ROM 4GB RAM 1GB,
ROM 4GB RAM 512MB,
ROM 8GB RAM 1.5GB,

修正後
ROM 4GB RAM 1GB,1
ROM 4GB RAM 512MB,
ROM 8GB RAM 1.5GB,1.5


正規表現


置換前
RAM (.*?)GB,

置換後
RAM \1GB,\1


CSVのn列目のデータ区切りまで選択

 閲覧数:473 投稿日:2017-10-04 更新日:2017-10-04

CSVのn列目のデータ区切りまで


^([^,]*,){n}


CSVの2列目のデータ区切りまで


^([^,]*,){2}
メーカー,機種名,販売時期,キャリア,OS種類,最大待受時間,CPU,CPUコア数,ROM(GB),RAM(GB),インターフェース,外部メモリタイプ,外部メモリ最大容量,バッテリー容量(mAh),幅(mm),高さ(mm),厚み(mm),重量(g),画面サイズ(インチ),画面解像度,パネル種類,データ通信サービス,Bluetooth,赤外線通信機能,テザリング対応,NFC対応,LTE対応,無線LAN規格,背面カメラ画素数,前面カメラ画素数,手ブレ補正,撮影用フラッシュ,4K撮影対応,耐水・防水機能,HDMI端子,フルセグ,ワンセグ,GPS機能,MHL対応,ハイレゾ,おサイフケータイ/FeliCa,認証機能,デュアルSIM,デュアルSIMデュアルスタンバイ(DSDS),SIM情報,発売日,,,,
シャープ,007SH KT, ,SoftBank,Android 2.3,3G:300時間,Snapdragon S2 MSM8255, ,1,, ,microSDHCメモリーカード, , ,51.8x113x19.3,,,140,3.4,854x480,NewモバイルASV液晶,3Gハイスピード,Bluetooth 3.0,○, , , , ,1610万画素, ,○, , , , , ,○,○, , ,おサイフケータイ, , , ,SIMロック解除不可 (標準SIM),2011年 9月9日 ,,,,


CSVの15列目のデータ区切りまで


^([^,]*,){15}
メーカー,機種名,販売時期,キャリア,OS種類,最大待受時間,CPU,CPUコア数,ROM(GB),RAM(GB),インターフェース,外部メモリタイプ,外部メモリ最大容量,バッテリー容量(mAh),幅(mm),高さ(mm),厚み(mm),重量(g),画面サイズ(インチ),画面解像度,パネル種類,データ通信サービス,Bluetooth,赤外線通信機能,テザリング対応,NFC対応,LTE対応,無線LAN規格,背面カメラ画素数,前面カメラ画素数,手ブレ補正,撮影用フラッシュ,4K撮影対応,耐水・防水機能,HDMI端子,フルセグ,ワンセグ,GPS機能,MHL対応,ハイレゾ,おサイフケータイ/FeliCa,認証機能,デュアルSIM,デュアルSIMデュアルスタンバイ(DSDS),SIM情報,発売日,,,,
シャープ,007SH KT, ,SoftBank,Android 2.3,3G:300時間,Snapdragon S2 MSM8255, ,1,, ,microSDHCメモリーカード, , ,51.8x113x19.3,,,140,3.4,854x480,NewモバイルASV液晶,3Gハイスピード,Bluetooth 3.0,○, , , , ,1610万画素, ,○, , , , , ,○,○, , ,おサイフケータイ, , , ,SIMロック解除不可 (標準SIM),2011年 9月9日 ,,,,


4-29 CSVのn番目のデータ区切りまでマッチその1

CSVのn列目のデータ区切りだけ抽出

 閲覧数:1,109 投稿日:2017-10-04 更新日:2017-10-04

CSVのn列目のデータ区切りだけ抽出


置換前
^([^,]*,){n-1}([^,]*){1},.*

置換後
\2


CSVの3列目のデータ区切りだけ抽出


置換前
^([^,]*,){2}([^,]*){1},.*

置換後
\2


CSVの15列目のデータ区切りだけ抽出


置換前
^([^,]*,){14}([^,]*){1},.*

置換後
\2


サクラエディタでCSVの特定の列を抽出

8桁数字日付へ対して、桁数に応じてハイフンを挿入

 閲覧数:556 投稿日:2017-10-06 更新日:2017-10-06
置換前
20140201
(\d{4})(\d{2})(\d{2})

置換後
\1-\2-\3
2014-02-01



正規表現の意味




\d
  数字(0から9)

-
  リテラルのハイフン

{n}
 直前の表現をn回繰り返す

キャプチャ

 閲覧数:530 投稿日:2018-02-01 更新日:2018-02-01
置換前
☆="sales_season" ★
☆="carrier" ★
☆="os_type" ★
☆="standby_time" ★
☆="cpu" ★
☆="cpu_core" ★

☆="(.*?)" ★

置換後
$\1 = $this->request->getPost('\1');
$sales_season = $this->request->getPost('sales_season');
$carrier = $this->request->getPost('carrier');
$os_type = $this->request->getPost('os_type');
$standby_time = $this->request->getPost('standby_time');
$cpu = $this->request->getPost('cpu');
$cpu_core = $this->request->getPost('cpu_core');



文字コード

秀丸で、複数行grep置換



類似度ページランキング
順位 ページタイトル抜粋
1 秀丸で正規表現 100
2 Cassava Editor で正規表現 37
3 秀丸で、複数行grep置換 30
4 秀丸エディタでグレップ検索できない 25
5 秀丸エディタのマクロ 24
6 「秀丸エディタ」ビット数確認 19
7 秀丸エディタ「キー割り当て」履歴 17
8 秀丸で現在読み込んでいるファイルを再読込するためには、「編集」-「再読み込み」 17
9 秀丸エディタで開けないファイルがある。メモ帳では開けるのに 17
10 秀丸で、グレップ置換すると、文字化けすることがある(未解決) 16
11 秀丸エディタのアウトライン機能を使用して、JavaScript関数だけをツリー形式で表示 16
12 秀丸で全画面表示を戻すためには一番上のところへカーソルを持っていき 左クリック →「元のサイズに戻す」選択肢が現れる 15
13 Excel指定セルを、必ず数字4桁で表示 15
14 秀丸でグレップ検索する際、除外キーワードを指定することはできますか? 14
15 「共通フレームでの作成でのスレッド間の同期処理」は 秀丸エディタのエラー 14
16 秀丸エディタ再設定 / 「キー割り当て」最新 14
17 秀丸エディタ / 「キー割り当て」2018/9 13
18 秀丸エディタ8.87(あるいはWindows10) でトラブル。2019年2月 13
19 秀丸エディタで、意図的に読み取り専用でファイルを開く方法は 4 種類あります。 13
20 強調表示ライブラリ 13
2024/4/20 18:43 更新
週間人気ページランキング / 4-13 → 4-19
順位 ページタイトル抜粋 アクセス数
1 MP3ファイルの「プロパティ」を変更できない | Windows 10(Windows) 60
2 Audacity で再生ボタンを押しても音が鳴らない時は、再生レべルスライダーを右にドラッグして「再生レべル:100%」にします。 | Audacity(音) 37
3 3.解凍先の指定。デフォルト設定ではデスクトップに解凍 32
4 「タイムゾーン間で同期」にはチェックを入れない 20
5 コマンドプロンプトでchkdsk /B | ハードディスクトラブル(ハードウェア) 16
6 「Audacity」で複数ファイルへ対する一括変換対応について | Audacity(音) 15
6 Windows 0 15
6 ファイル名の一部(指定文字列)を削除するバッチファイル | バッチファイル(Windows) 15
7 Tablacus Explorer | ソフトウェア 13
8 Xboxを使用していない場合、XblGameSaveを動作させる必要は全くない 12
8 Windows10 不定期でフリーズ発生トラブル(2019/6/7→6/8)。イベントビューアーで発生個所を特定しようとするも失敗に終わる | フリーズトラブル 2019年(Windows) 12
9 ctfmon.exe – Unknown Hard Error | フリーズトラブル 2021年 (Windows) 11
10 「みまもり合図」に関する疑問。2019年 | みまもり合図(ソフトウェア) 9
10 「VLC media player」で動画再生した際、動きが大きくなるにつれて横シャギーが入ったように横線が表示される場合には、「デインターレース」設定を「オン」へ変更します。 | VLC media player(ソフトウェア) 9
10 「Windows 10」パソコンのタスクマネージャーで「GPU」が表示されない(グレイアウトされる)理由は、WDDMドライバがWDDM2.x以上ではなかったから | Windows 10(Windows) 9
10 フォルダウィンドウの「戻る」「進む」矢印ボタンが表示されなくなった | Windows7(Windows) 9
11 「VLC media player」で動画再生する際、なるべく高画質で観るための設定 | VLC media player(ソフトウェア) 8
11 タスクスケジューラ | Windows 10(Windows) 8
11 クイックアクセスから複数のピン留めを一括で解除することはできません | Windows エクスプローラー(Windows) 8
12 「Windows 10」でアイコンをダブルクリックするとプロパティ画面が開く理由は、「Altキー」が押下されたままと認識されているため | Windows 10(Windows) 7
2024/4/20 1:01 更新