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

- [POSIX？PCREってなにそれ？ - Qiita](https://qiita.com/ponsuke0531/items/c903ceed9d0f296e951e)

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


> [^\x01-\x7E]とは、「全角を探すのは果てしないので、1バイト文字ではないものを探す」という書き方
> [絶対分かる正規表現～全角(日本語)を検索する～](http://fujiringo.sakura.ne.jp/hayabusa/blog/code/2011/07/post-1.html)

- [正規表現サンプル(全角文字を検索する)](http://hodade.com/seiki/page.php?s_zenkaku)
- [正規表現　基本: ななし。](http://becomethewings.seesaa.net/article/433798945.html)
- [特定の文字列を含まない正規表現をgrepやfindで使用する - grep Tips](https://www.greptips.com/posts/303/)
- [メールアドレスのフォーマットチェックのリンク集 - Qiita](https://qiita.com/ponsuke0531/items/f780da79e4d2fc784604)



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

- [正規表現：文字数や、文字数の範囲を指定する表現 | WWWクリエイターズ](http://www-creators.com/archives/3776)

# 置換したい
- [大文字や小文字に置換する - Qiita](https://qiita.com/arai-wa/items/ceb28523c14177148ce4)
- [エディタで置換する事例集 - Qiita](https://qiita.com/ponsuke0531/items/2140b3c46bf5ec03af7b)
- [curlのレスポンスをデコードする - Qiita](https://qiita.com/ponsuke0531/items/9f798a9193a347266ff7)

# 否定

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

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

# 「112」で「112」の直後が数字以外の文字をバイナリファイルを除いた中から検索したい
$ grep -rlI 112[^0-9]
```
- [正規表現を使って「〜以外」をマッチさせてみる | 「ポテパンスタイル」](https://style.potepan.com/articles/9251.html)
- [正規表現で「先頭ではない」「行末ではない」を表現 - Qiita](https://qiita.com/ponsuke0531/items/cf6dfcaa444f36103fe2)

# 文字コード
- [CP932とMS932の違いを調べて知ったCP932とSJISの違い - ponsuke_tarou’s blog](https://ponsuke-tarou.hatenablog.com/entry/2020/10/08/002458)
- Webツール
    - [複数の文字コード方式に一括して変換](https://so-zou.jp/web-app/text/encode-decode/)

```text:Unicodeでは
002c : ,
```


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

- Webツール
    - [preg_matchとpreg_match_all - LANDHERE](http://landhere.jp/services/etc/preg_test.php)
    - [正規表現チェッカー | WEB ARCH LABO](https://weblabo.oscasierra.net/tools/regex/)
    - [デバックできるツール: PHP, PCRE, Python, Golang and JavaScript](https://regex101.com/)
    - [正規表現チェッカー PHP: preg_match() / JavaScript: match()](http://okumocchi.jp/php/re.php)

# JavaScript
- Webツール
    - [正規表現が図でみれるRegulex](https://jex.im/regulex/#!flags=&re=)

# Java
```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();
}
```
- [【保存版】正規表現でエスケープが必要な文字一覧表 - Qiita](https://qiita.com/katsukii/items/1c1550f064b4686c04d4)
- [パターンの中のエスケープ処理 - 正規表現の基本 - Java正規表現の使い方](https://www.javadrive.jp/regex/ini/index4.html)
- [文字列の置き換えを行う方法 (replaceAllで気をつけること) - [サンプルコード/Java] ぺんたん info](http://pentan.info/java/sample/str_replace.html)
- Webツール
    - [Regular Expression Test Drive](https://regex-testdrive.com/ja/)

# Perl
- [正規表現サンプル集](https://www.megasoft.co.jp/mifes/seiki/meta.html)
- [ネストされた括弧を使う時の番号付き変数の順番は - ishiducaの日記 - Hatena::Group::Perl](https://perl.g.hatena.ne.jp/ishiduca/20090405/1238920752)