秀丸で正規表現

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

概要

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


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

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

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



解説


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

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

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

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

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


短長


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

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

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

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

事例集

 閲覧数:375 投稿日: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・


‎ .+?‎ 



$‎ .+?‎ 


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

 閲覧数:313 投稿日: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

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

 閲覧数:254 投稿日: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>


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

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

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


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


具体例


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



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

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

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


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


具体例


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



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

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

内容


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

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


コード


置換前
・<a
置換後
<a

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


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

 閲覧数:153 投稿日: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列目のデータ区切りまで選択

 閲覧数:162 投稿日: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列目のデータ区切りだけ抽出

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

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


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

置換後
\2


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


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

置換後
\2


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


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

置換後
\2


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

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

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

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



正規表現の意味




\d
  数字(0から9)

-
  リテラルのハイフン

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

キャプチャ

 閲覧数:147 投稿日: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');


Twitter検索結果。「秀丸で正規表現」に関する最新ツイート


文字コード

秀丸で、複数行grep置換



類似度ページランキング
順位 ページタイトル抜粋
1 Cassava Editor で正規表現 37
2 秀丸で、複数行grep置換 30
3 秀丸エディタでグレップ検索できない 25
4 秀丸エディタのマクロ 24
5 「秀丸エディタ」ビット数確認 19
6 秀丸エディタ「キー割り当て」履歴 17
7 秀丸で現在読み込んでいるファイルを再読込するためには、「編集」-「再読み込み」 17
8 秀丸エディタで開けないファイルがある。メモ帳では開けるのに 17
9 秀丸で、グレップ置換すると、文字化けすることがある(未解決) 16
10 秀丸エディタのアウトライン機能を使用して、JavaScript関数だけをツリー形式で表示 16
11 秀丸で全画面表示を戻すためには一番上のところへカーソルを持っていき 左クリック →「元のサイズに戻す」選択肢が現れる 15
12 Excel指定セルを、必ず数字4桁で表示 15
13 「共通フレームでの作成でのスレッド間の同期処理」は 秀丸エディタのエラー 14
14 秀丸エディタ再設定 / 「キー割り当て」最新 14
15 秀丸エディタ / 「キー割り当て」2018/9 13
16 秀丸エディタ8.87(あるいはWindows10) でトラブル。2019年2月 13
17 Windows10で、送るメニュー表示内容を追加 13
18 強調表示ライブラリ 13
19 秀丸エディタ「浮動小数点数バージョン」は、マクロで浮動小数点数を扱う人専用の特別な仕様 12
20 秀丸エディタへのマクロ登録。最新設定へ随時更新していく 12
2021/4/11 10:35 更新
週間人気ページランキング / 4-4 → 4-10
順位 ページタイトル抜粋 アクセス数
1 MP3ファイルの「プロパティ」を変更できない | Windows 10(Windows) 113
2 Windows 0 76
3 「接点復活剤」「接点復活スプレー」は、100円ショップで販売されていない | イヤホン(ハードウェア) 53
4 「機能を構成しています 100%完了 コンピューターの電源を切らないでください」の画面が表示され続ける場合でも、1時間ぐらいは待った方が良いかも | 起動トラブル 2019年(Windows) 35
4 「コンテナー内のオブジェクトを列挙できませんでした」と表示される場合は、「Everyone にフルコントロール権限を与えて全て削除する」 | Windows 10(Windows) 35
5 ファイル名の一部(指定文字列)を削除するバッチファイル | バッチファイル(Windows) 31
6 タスクスケジューラ | Windows 10(Windows) 30
7 コンピューターは正しく構成されていますが、デバイスまたはリソース (DNS サーバー) が応答していません。 | ネットワーク 28
8 メモリ不足のため、この処理を完了できません | Windows 26
8 VLC media player で複数曲を「繰り返し連続再生する」ためには、プレイリスト全体をリピート再生指定する | VLC media player(ソフトウェア) 26
9 Windows10で「空のドライブを表示しないようにする」ためには、 「フォルダーオプション」にて「空のドライブは表示しない」にチェックを入れる | Windows 10(Windows) 22
10 コマンドプロンプトでchkdsk /B | ハードディスクトラブル(ハードウェア) 21
11 Xboxを使用していない場合、XblGameSaveを動作させる必要は全くない 17
11 Windows10 不定期でフリーズ発生トラブル(2019/6/9)。フリーズ現象の調査で採取するダンプの種類は、「完全メモリダンプ」でないと有効な調査はできない | フリーズトラブル 2019年(Windows) 17
12 Windows10でデスクトップにファイルを保存できない。ESPRIMO DH77 | Windows 10(Windows) 16
12 「みまもり合図」に関する疑問。2018年 | みまもり合図(ソフトウェア) 16
13 マウスの選択範囲がおかしくなった時、試してみた方が良いかもしれないこと | マウス(ハードウェア) 14
14 Windows10 不定期でフリーズ発生トラブル(2019/6/7→6/8)。イベントビューアーで発生個所を特定しようとするも失敗に終わる | フリーズトラブル 2019年(Windows) 13
14 外付けハードディスクを収納可能な安価ラックを探す | 外付けハードディスク(ハードウェア) 13
15 VLC Media Player (現時点で最新バージョン)で、ツールから「エフェクターとフィルター」画面が表示されない | VLC media player(ソフトウェア) 12
2021/4/11 1:02 更新