LoginSignup
24
26

正規表現がわからないから見たいリンク集

Last updated at Posted at 2018-12-17

検索したい

検索したいもの 正規表現
全角文字 [^\x01-\x7E]
全角文字または大文字英字が連続 ([^\x01-\x7E]|[A-Z])+
丸数字 [①-⑨]
日付(yyyy-MM-dd形式) ふんわり:\d{4}-\d{2}-\d{2}
[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])

[^\x01-\x7E]とは、「全角を探すのは果てしないので、1バイト文字ではないものを探す」という書き方
絶対分かる正規表現~全角(日本語)を検索する~

文字数を指定したい

やりたいこと 正規表現 意味
決まった文字数 [0-9]{3} 0-9が3文字
文字数の範囲 [0-9]{3,5} 0-9が3-5文字
〇文字以上 [0-9]{3,} 3文字以上
〇文字以下 [0-9]{,5} 5文字以下

置換したい

否定

# 行頭が「;」ではない行を検索する(configファイルのコメント以外)
$ grep -r ^[^\;]

# 「_role」(文字列)を含まない行を検索する
$ grep -r ^(?!.*_role).+$

# 「112」で「112」の直後が数字以外の文字をバイナリファイルを除いた中から検索したい
$ grep -rlI 112[^0-9]

文字コード

Unicodeでは
002c : ,

PHP

PHP
/w : [a-zA-Z0-9_]
/d : [0-9]
xパターン修飾子 : フリーフォーマットモードを有効にする。ASCIIの空白文字しか認識せずUnicodeに含まれる他の空白文字は認識しない
(?:~) : パターンのグループ

JavaScript

Java

エスケープした半角記号を取得する
private String getEscapedKigo(String hankakuKigo) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < hankakuKigo.length(); i++) {
        String c = String.valueOf(hankakuKigo.charAt(i));
        sb.append(Matcher.quoteReplacement(c));
    }
    return sb.toString();
}

Perl

24
26
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
24
26