正規表現の勉強から逃げてきた情弱だから常識しか書かない
行末の空白
\s\+$
vimで行末空白を消したいときは :%s/\s\+$//gc
と書けばよいのね
行頭から特定の文字(:)まで
^.*:
特定の文字(:)から行末まで
:.*$
AND(論理積)
/^(?=.*apple)(?=.*orange)/
これはapple → orangeの順番に出てこないと検索できないという理解でいいのかしら
abcで始まらない任意の文字列を抽出
/^(?!abc).*/
abcより前を抜き出す
/(.*)(?=abc)/
正規表現の*とワイルドカードの違い
Unixのシェル:
? → 任意の1文字
* → 長さ0文字以上の任意の文字列
正規表現:
. → 任意の1文字
* → 直前の表現が0回以上あること
表現 | 意味 |
---|---|
\s | tabなどを含む空白文字全般 |
. | 任意の1文字 |
* | 直前のパターンの0回以上の繰り返し |
+ | 直前のパターンの1回以上の繰り返し |
? | 直前のパターンの0回または1回の繰り返し |
$ | 行末 |
^ | 行頭 |
| | OR |
/^(?=.*apple)(?=.*orange)/ | apple AND orange |
foo(?=bar) | 肯定的先読み 直後にbarがあるfoo(barは含まない)に一致する |
foo(?!=bar) | 否定的先読み 直後にbarがないfoo(barは含まない)に一致する |
(?<=bar)foo | 肯定的後読み 直前にbarがあるfoo(barは含まない)に一致する |
(?<!=bar)foo | 否定的後読み 直前にbarがないfoo(barは含まない)に一致する |