MW211 EXIT

devlog
秀丸/ExcelのRange型からCells型への変換
2019年09月06日
┌──┬───────────────────────────────────┐
│検索│Range\("([A-Z]+)(\d+):([A-Z]+)(\d+)"\)                                │
├──┼───────────────────────────────────┤
│置換│Range(Cells(\2, \1), Cells(\4, \3))                                   │
└──┴───────────────────────────────────┘
「Range("A2:C4")」→「Range(Cells(2, A), Cells(4, C))」

ここまではできた

ABC…を123…に変換するところで行き詰ったので、これ以上はVBAでやることにした。
「変換関数(\1)」みたいなことができりゃいいんだけどね
分類:秀丸エディタ
正規表現/位置により置換内容が異なる方法
2017年03月03日
┌───┬──────────────────────────────────┐
│置換前│①\t②\t③\t④                                                      │
├───┼──────────────────────────────────┤
│置換後│①(②-③)[④]                                                       │
└───┴──────────────────────────────────┘
上記のような置換を行いたい場合、秀丸エディタなら以下で実現できる。
┌──┬───────────────────────────────────┐
│検索│^([^\t]*)\t([^\t]*)\t([^\t]*)\t(.*)$                                  │
├──┼───────────────────────────────────┤
│置換│\1(\2-\3)[\4]                                                         │
└──┴───────────────────────────────────┘
さて、純粋な正規表現で実現できるものか?
分類:秀丸エディタ、正規表現、【未解決】
秀丸/左右交換
2015年06月04日
「ABC[123]」を「[123]ABC」にする置換方法(正規表現で)。
┌───┬──────────────────────────────────┐
│置換前│([^\[\]]*)(\[.*\])                                                  │
├───┼──────────────────────────────────┤
│置換後│\2\1                                                                │
└───┴──────────────────────────────────┘
分類:秀丸エディタ
秀丸マクロ/二重引用符の中のカンマ置換
2015年03月17日
CSVデータで値にカンマを含むがために二重引用符で囲われている場合、
そのカンマを違う値にするマクロ。

┌──────────────────────────────────────┐
│while(1) {                                                                  │
│    replaceallfast "(^([^,\"]*?,|\"[^,\"]*\",)*\"[^,\"]*),(.*$)",           │
│                   "\\1,\\2",                                              │
│                   regular;                                                 │
│    if (!result) break;                                                     │
│}                                                                           │
│endmacro;                                                                   │
└──────────────────────────────────────┘
上記では「,」(全角カンマ)に置換している。
分類:秀丸エディタ
秀丸マクロ/grep後のソース抽出
2013年03月21日
フォルダ配下をgrepした場合、たまにソースと関係ないファイルもひっかかる時がある
ということで、そういうバイナリファイルとかを除去する秀丸マクロ
(注意)実際に使う場合には、自分の環境合わせて内容を見直してください
      さもなくば本当に必要なソースまで除去されてしまう危険性があります
┌──────────────────────────────────────┐
│// 実行系ファイル                                                           │
│replaceallfast ".*\\.bin\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.cgi\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.dll\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.exe\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.sh\\(.*"               , "", casesense, regular;       │
│                                                                            │
│// 画像系ファイル                                                           │
│replaceallfast ".*\\.ico\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.jpg\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.png\\(.*"              , "", casesense, regular;       │
│                                                                            │
│// データ系                                                                 │
│replaceallfast ".*\\.csv\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.log\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.pdf\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.txt\\(.*"              , "", casesense, regular;       │
│                                                                            │
│// SubVersion                                                               │
│replaceallfast ".*\\.svn.*"                 , "", casesense, regular;       │
│                                                                            │
│// Smarty                                                                   │
│replaceallfast ".*\\\\templates_c\\\\.*"    , "", casesense, regular;       │
│                                                                            │
│// VisualStudio                                                             │
│replaceallfast ".*\\.vcxproj\\(.*"          , "", casesense, regular;       │
│replaceallfast ".*\\.vcxproj\\.filters\\(.*", "", casesense, regular;       │
│replaceallfast ".*\\.cache\\(.*"            , "", casesense, regular;       │
│replaceallfast ".*\\.cs\\(.*"               , "", casesense, regular;       │
│replaceallfast ".*\\.idb\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.ilk\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.ipch\\(.*"             , "", casesense, regular;       │
│replaceallfast ".*\\.lastbuildstate\\(.*"   , "", casesense, regular;       │
│replaceallfast ".*\\.obj\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.pch\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.pdb\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.sdf\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.sln\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.suo\\(.*"              , "", casesense, regular;       │
│replaceallfast ".*\\.tlog\\(.*"             , "", casesense, regular;       │
│                                                                            │
│// その他                                                                   │
│replaceallfast ".*\\.o\\(.*"                , "", casesense, regular;       │
│replaceallfast ".*\\.tmp\\(.*"              , "", casesense, regular;       │
│                                                                            │
│// 空行に置換していたものを最後にまとめて除去                               │
│replaceallfast "^\\n", "", regular;                                         │
└──────────────────────────────────────┘
それぞれ該当する行を空行にして最後に空行を除去するという方式だ
分類:秀丸エディタ
秀丸/正規表現の最長一致の原則
2012年03月15日
秀丸エディタの正規表現は「最長一致の原則」に従っている。
「【a】【b】」の場合、「【.+】」とすると
「【a】」ではなく「【a】【b】」までが該当する。

最短一致にするにはどうすればよいか?

「【.+?】」と「+」(もしくは「*」)の後ろに「?」をつけるのが
一般的な正規表現の最短一致指定だ。

ただ「【[^】]*】」という方法もある。

こちらだと「【[^】]*】(?!【)」というのも効く。
→【b】だけ検出してくれる。

「【.+?】(?!【)」だとこれが効かないようだ。
→「【a】【b】」を検出してしまう。
分類:秀丸エディタ、正規表現
秀丸エディタ/正規表現における最長一致の原則
2011年09月13日
例えば、「『」と「』」で囲われた文字列を検索(置換)する場合の正規表現は
以下の通り。
┌───┐
│『.*』│
└───┘
「.*」は最強のワイルドカードだ。

でも、これだと「『あ』『い』『う』」を「『ん』」に置換したい場合、
「『ん』『ん』『ん』」としたくとも「『ん』」だけになってしまう。
秀丸エディタの正規表現は、最長一致の原則に則っているからだ。
(「あ』『い』『う」が「.*」とみなされてしまうのだ)

「『ん』『ん』『ん』」としたい場合には、以下を使う。
┌─────┐
│『[^』]+』│
└─────┘
「[^■]」は「否定」なわけだが(「+」は繰り返し)、
見方を変えれば「否定」(の繰り返し)って準ワイルドカードでもあるのだ。
分類:秀丸エディタ
前へ 1 次へ