LoginSignup
1
0

More than 3 years have passed since last update.

正規表現の勉強から逃げてきた情弱だから常識しか書かない

行末の空白

\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回の繰り返し
\$ 行末
^ 行頭
\
/^(?=.*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は含まない)に一致する

参考

1
0
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
1
0