첫 번째 기능은 거의 옳습니다. 'global'(편집)을 나타내는 'g'플래그를 제거하고 두 번째 'r'을 발견 할 수있는 컨텍스트를 제공하십시오.
편집 : 그것이 '/'를 추가하기 전에 두 번째 'r'인 것을 보지 못했습니다. regEx 인수를 사용할 때 '/'를 이스케이프하려면 \ /가 필요합니다. upvotes에 감사하지만 잘못되었으므로 regEx의 기본 사항을 더 잘 이해하는 데 관심이있는 사람들을 위해 세부 정보를 수정하고 추가 할 수 있지만 다음과 같이 작동합니다.
mystring.replace(/\/r/, '/')
과도한 설명이 필요합니다 :
regEx 패턴을 읽거나 쓸 때 <문자 또는 문자 집합>과 <문자 또는 문자 집합>, <...
regEx에서 <문자 또는 문자 집합>은 한 번에 하나씩 일 수 있습니다.
/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가 엉뚱 해 보일 때마다 일련의 것들 (잠재적으로 다중 문자 것들)로 차례로 나뉩니다. 일종의 기본 요점이지만 과거에 시간이 걸리기 때문에 여기에서 설명을 진행했습니다 .regEx를 처음 접하는 OP 및 다른 사람들이 무슨 일이 일어나고 있는지 이해하는 데 도움이 될 것이라고 생각합니다. 정규식 읽기 / 쓰기의 핵심은이를 여러 부분으로 나누는 것입니다.