1
0

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 1 year has passed since last update.

正規表現の入り口

Last updated at Posted at 2023-02-26

正規表現って難しいでしょ・・・?

と思う方向けに簡単にまとめたものです。

これだけ知っておけば、なんとなく分かったつもりになれると思うので、さらっと目を通してみてください。

[] {} ()の3種類と
+ * ? . の記号さえ覚えればなんとかなると思います。

[]

a b c d e f g h i j
という文字列があって、そこに対して正規表現を掛けた場合を例にしてます。

角括弧は、カッコの中に記載した1文字が該当します
・[abcdef] もしくは [a-f]
と記載した場合
a b c d e f g h i j
Boldにしてる箇所が該当します

また、
・[acf]
と記載した場合
a b c d e f g h i j
Boldにしてる箇所が該当します

ちなみに
小文字のアルファベットを引っ掛ける場合は
[a-z]
大文字のアルファベットを引っ掛ける場合は
[A-Z]
小文字大文字のアルファベットを引っ掛ける場合は
[a-zA-Z]
[A-Za-z]
と書きます

{}

波括弧は直前に記載した文字の繰り返しを表します

例えば、
"CCレモン"という文字列を引っ掛けたいのであれば
C{2}レモン
と記載すればOKです

もし、"CCレモン"以外に、"CCCレモン"や"CCCCレモン"も引っ掛けたい場合は、
"C{2,4}レモン"と記載すればOKです。
このように記載すると、2回以上4回以下の繰り返しを表します。

()

丸括弧はカッコの中に書いた文字をまとめて対象にする事ができます

例えば
(キレイ){2}
とすると、
某手洗い石鹸の、"キレイキレイ"を正規表現で表す事ができます

他にも、
(どん){3}の森と書くと
某県にある、"どんどんどんの森"を正規表現で表す事ができます

+ * ? .

あとは、

  • + -> 1回以上の繰り返し
  • * -> 0回以上の繰り返し
  • ? -> 0~1回の繰り返し
  • . -> 任意の1文字
    を表します。

先程のCCレモンを例にあげると

  1. レモン
  2. Cレモン
  3. CCレモン
  4. CCCレモン

があるとすると、
"C+レモン"は、"C"が1回以上出てくる2,3,4を表します
"C*レモン"は、"C"が0回以上出てくる1,2,3,4を表します
"C?レモン"は、"C"が0or1回出てくる1,2,3,4を表します
(正確には、"C?レモン"という正規表現は"レモン"or"Cレモン"を表すため、これらを含む1と2,3,4の"Cレモン"の場所が一致します)

また、
"."は任意の1文字を表すため、".*"と記載すると、
1行全てがひっかかります。

正規表現はvscodeの文字列検索ウィンドウを表示して".*"のマークのボタンを押すと使用できますので、ぜひいろいろやってみてください!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?