Open7

正規表現と向き合う

YuriYuri

文字数をチェック

.{1,50}

YuriYuri

.{1,50}
. ... なんでも良い1文字

.{m,n}
m ... 最低文字数
n ... 最大文字数

の範囲内の数だけある

YuriYuri

スペースを置き換える

/\s/g

YuriYuri

/ \s / g

/ ... 正規表現と認識するためのサイン

/にはさまれた変な記号の羅列があったらその中身が正規表現の条件だ。


/ \s /g

\s ... 文字の種類を区別するための文字クラス。スペース、タブ、改ページ、改行を含むホワイトスペース文字にマッチするよ。

sが大文字か小文字かで意味が変わってくるので注意だよ。


/ \ s / g

g ... グローバルサーチを行うオプション/フラグ。文字列全体を見て一致したものをすべて返してくれるy


参考

YuriYuri

2つの違いはなんだ

/^\/text$/
/^\/text[/|?]/

YuriYuri

/^/text$/

/ ^/text$ / ... /に挟まれている部分が正規表現だね!


/ ^ /text$/ ... 行や単語の始まり・終わりを示す、境界や、(先読み、後読み、条件式を含む)何らかの方法でマッチが可能な言明の1つだよ。
^が先頭の文字列を指すよ。

参考) https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions/Assertions


/^ \ /text$/ ... 文字クラスの1つで、次にくる文字を「エスケープ」することを示すよ。
通常文字と特殊文字、どちらと一緒に使われるかでエスケープの効果は変わるよ。

通常文字の前に付けられた場合、次の文字が特別なもので、文字通りには評価されないことを示します。例えば b は文字 "b" にマッチします。しかし "b" の前にバックスラッシュを置いて \b とすると、単語区切りを意味するようになります。

特殊文字の前に付けられた場合、次の文字が特別なものでなく、文字通りに評価されることを表します。例えば、"" は、先行文字の 0 回以上の出現が一致する必要があることを意味する特殊文字です。例えば、/a/ は 0 回以上の "a" とマッチします。文字通りの * にマッチさせるには、その直前にバックスラッシュを入れます。例えば、/a*/ は "a*" とマッチします。

この場合は文字列が/textではじまる文字列にマッチします。


/^/text $ / ... これも言明の1つです。入力の末尾にマッチします。

この場合は文字列が/textで終わる文字列にマッチします。
^と$で挟むことで完全一致検索ができるんだ!💡


/^/text[/|?]/ ... グループと範囲の指定方法です。

/text/dfsd/fsdf/ など、文字列が/text ではじまり、以降、/で始まる文字列が続く場合はヒットします。
https://www-creators.com/tool/regex-checker?r=^\%2Ftext[%2F|%3F]

参考) https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges

YuriYuri

違いとしては下記のとおり。

/^\/text$/ -> /text
= 具体的なキーワドの完全一致

/^\/text[/|?]/ -> text/xxx/xxx...
= 先頭一致とそれ以降に続く文字列の条件を指定