text = 'ticket number #1234 and #8976 ';
r = /#(\d+)/g;
var match = r.exec(text);
log(match); // ["#1234", "1234"]
위의 경우 1234와 8976을 모두 캡처하고 싶습니다. 어떻게해야합니까? 또한 문장에는 정수가 오는 '#'이 여러 개있을 수 있습니다. 따라서 솔루션은 최대 두 번 발생한다고 가정하면 하드 코딩하지 않아야합니다.자바 정규 표현식이 캡쳐되지 않더라도 # 문자를 반환합니다.
업데이트 : 그냥 궁금합니다. 다음 두 가지 경우를 체크 아웃하십시오.
var match = r.exec(text); // ["#1234", "1234"]
var match = text.match(r); //["#1234", "#8976"]
왜 두 번째 경우에는 캡처하지 않더라도 #가 표시됩니다. string.match가 캡처 규칙을 따르지 않는 것 같습니다. 사용 String.prototype.match
대신 RegExp.prototype.exec
이 null''비교하는 또 다른 방법입니다 :'((경기 = r.exec (텍스트)) == null이!) 동안' – Gumbo