2017-10-10 29 views
2

タイトルごとに、文字列に.match()関数を使用して、その文字列の先頭または末尾にあるインスタンスにのみ一致させようとしています途中ではどこにもない)。例えば、単語 "テスト" の文字列の先頭と末尾にのみ一致する正規表現

x = "1 TEST 1" 
x1 = "TEST 1" 
x2 = "1 TEST" 
x3 = "TEST" 

のみX1、X2およびX3は、正規表現と一致する必要があります。現在、私は:

.toUpperCase().match(/(TEST)/) 

"テスト"のすべてのインスタンスに一致します。私は^と$の修飾子を使ってみましたが、x3にしかマッチしません。この1しかし: `

.toUpperCase().match(/(TEST)$/) 

.toUpperCase().match(/^(TEST)/)マッチングx1とx3のだけで、唯一X2とX3と一致します。

答えて

5

|を使用してどちらかを一致させてください。

.toUpperCase().match(/^TEST|TEST$/)

はまた、あなたがTESTの前後に括弧を挿入する必要がないことに注意してください。

+2

それはあなたのユースケースに少し依存してもよい行全体を返しますが、あなたは、 '.toUpperCaseを()'スキップ可能性があり、ちょうどマッチケースを作ります非対応です: '.match(/^TEST | TEST $/i)' – benschumacher

+0

助けてくれてありがとうCAustin!そしてそれは大文字小文字の区別についての素晴らしいヒントです@benschumacher、ありがとう –

0

この正規表現は、「TEST」で開始または終了すると行に一致します。複数行

に一致するように mを追加

注:この正規表現は

関連する問題