15
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

便利な正規表現

Last updated at Posted at 2018-06-16

内容

仕事でよく使う正規表現パターンを記載しておく。
サクラエディタで確認済み

日付(YYYY-MM-DD HH:MM:SS)

[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}

特定文字を含まない行(例ではAAA)

^(?!.*(AAA)).*$

YYYY-MM-DD⇒YYYY/MM/DD変換

置換前:([0-9]{4})-([0-9]{2})-([0-9]{2}) [0-9]{2}:[0-9]{2}:[0-9]{2}
置換後:$1/$2/$3

全角文字検索

[\x{007F}-\x{7777}]
16進数で指定する

キャメルケース⇒スネークケース

①大文字の直前に、_を挿入
 置換前:[A-Z]
 置換後:\_$&
②大文字変換
 置換前:(.)
 置換後:\u\1

スネークケース⇒キャメルケース

①小文字変換
 置換前:(.)
 置換後:\l\1
②"_"の直後の文字を大文字変換
 置換前:\_(.)
 置換後:\u\1

二度の置換を行うのは面倒なので,一度の置換で行うなら
 置換前:([A-Z])|_([A-Z])
 置換後:\l\1\u\2

フルパスからファイル名を取り出す

(?<=/)(?!.*/).*

JAVA関連

getter,setter

javaを書いているとき
getter,setterを別の変数に設定するのが面倒なので

以下のフィールドを別の変数に設定するとき等

private String kanriNo;

private String kanriStr;

置換前:(^.* )(.)(.*);$
置換後:data.set\u\2\3(list.get\u\2\3());

data.setKanriNo(list.getKanriNo());

data.setKanriStr(list.getKanriStr());

Javaクラス内のフィールドをコメント付きで設定

/** コード */
private String code;

/** ラベル */
private String lavel;

/** 値 */
private BigDecimal value

わざわざ正規表現でやる必要もないんだけど
①改行を排除(改行またぎができればいいんだけど)
置換前:$\r\n
置換後:@@@
②変換
置換前:/\*{2} (.*?)\*/@@@private \S* (\S*);
置換後:set\u\2() // \1
③@@@を改行コードに変換
置換前:@@@
置換後:\r\n

setCode() // コード 

setLavel() // ラベル 

setValue() // 値 

実数をBigDecimal変換

 置換前:\d+(\.\d+|)
 置換後:new BigDecimal("$&")

HTML関連

idを追加

javaのjsfをやっていてID名を設定したフィールド名と同じにしたい。


<h:inputText style="width : 30px" value="#{r.data.testData}" />

<h:inputText style="width : 30px" value="#{r.data.value}" />

<h:inputText style="width : 30px" value="#{r.data.label}" />

置換前:(value="#{)(.*\.)(\w+)(}")(.*$)
置換後:\1\2\3\4 id="\3" \5

実行後


<h:inputText style="width : 30px" value="#{r.data.testData}" id="testData"  />

<h:inputText style="width : 30px" value="#{r.data.value}" id="value"  />

<h:inputText style="width : 30px" value="#{r.data.label}" id="label"  />

もっとスマートにやりたいな

idを修正

IDを記載したけど修正するのが面倒なときは、置換すればよいじゃないか


<h:inputText style="width : 30px" value="#{r.data.testData}" id="djaojojo" />

<h:inputText style="width : 30px" value="#{r.data.value}" id="dfjaojfoijo" />

<h:inputText style="width : 30px" value="#{r.data.label}" id="dddddddddd" />

置換前:(value="#{)(.*\.)(\w+)(}")(.)(id="\w+")(.*$)
置換後:\1\2\3\4\5id="\3"\7

15
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?