最初の機能はほぼ正しいです。'global'(編集)を表す 'g'フラグを削除し、2番目の 'r'を見つけるためのコンテキストを与えます。
編集:それが前に2番目の「r」であることがわからなかったため、「/」を追加 regEx引数を使用する場合、「/」をエスケープするには¥/が必要です。賛成投票に感謝しますが、私は間違っていたので、regExの基本をよりよく理解することに関心のある人のために詳細を修正して追加しますが、これでうまくいきます。
mystring.replace(/\/r/, '/')
過度の説明のために:
regExパターンを読み書きするときは、<文字または文字のセット>の後に<文字または文字のセット>の後に<...
regExでは、<文字または文字セット>は一度に1つになります。
/each char in this pattern/
したがって、e、a、cなどのように読みます。
または、単一の<文字または文字セット>は、文字クラスによって記述された文字である可能性があります。
/[123!y]/
//any one of these
/[^123!y]/
//anything but one of the chars following '^' (very useful/performance enhancing btw)
または、文字の数に一致するように拡張されます(ただし、シーケンシャルパターンに関して単一の要素と考えるのが最善です):
/a{2}/
//precisely two 'a' chars - matches identically as /aa/ would
/[aA]{1,3}/
//1-3 matches of 'a' or 'A'
/[a-zA-Z]+/
//one or more matches of any letter in the alphabet upper and lower
//'-' denotes a sequence in a character class
/[0-9]*/
//0 to any number of matches of any decimal character (/\d*/ would also work)
だから一緒に束を滑らかにする:
var rePattern = /[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/g
var joesStr = 'aaaAAAaaEat at Joes123454321 or maybe aAaAJoes all you can eat098765';
joesStr.match(rePattern);
//returns ["aaaAAAaaEat at Joes123454321", "aAaAJoes all you can eat0"]
//without the 'g' after the closing '/' it would just stop at the first match and return:
//["aaaAAAaaEat at Joes123454321"]
そしてもちろん、私は過度に精緻化してきましたが、私のポイントは単に次のことです:
/cat/
一連の3つのパターン要素です(モノ、モノ、モノの順)。
これもそうです:
/[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/
regExの外観が奇妙になってくると、すべてが次々と順番に続く一連の事柄(潜在的に複数文字の事物)に分解されます。基本的なポイントですが、過ぎ去るのに少し時間がかかったので、OPやregExの新しい他の人たちが何が起こっているのかを理解するのに役立つと思うので、ここで説明しました。regExの読み取りと書き込みの鍵は、regExをこれらの部分に分解することです。