주어진 문자열을 토큰 화하기 위해 정규 표현식을 사용하고 싶습니다. 패턴은 "<"까지의 문자 (줄 바꿈 등), 0 번 이상 공백, "%"다음에 오는 문자입니다. 시도했습니다.Javascript RegExp Tokenizing
그러나 원하는 결과가 나오지 않습니다. 패턴과 함께 설명을 해주시면 감사하겠습니다.
주어진 문자열을 토큰 화하기 위해 정규 표현식을 사용하고 싶습니다. 패턴은 "<"까지의 문자 (줄 바꿈 등), 0 번 이상 공백, "%"다음에 오는 문자입니다. 시도했습니다.Javascript RegExp Tokenizing
그러나 원하는 결과가 나오지 않습니다. 패턴과 함께 설명을 해주시면 감사하겠습니다.
사용이 :
"some string".split(/.*<\s*%/);
작동하지 않습니다. "스팸 쇠고기 <% 스팸 및 쇠고기 %> 스팸 쇠고기"를 직접 사용해보십시오 .split (/ (.) * <(\ s) * % /); 이것은 제가 사용했던 패턴입니다. 이것은 분명히 올바르지 않습니다. – MrIzik
콘솔에서 테스트 해보니 작동 중입니다. "this-is + a_test".split (/ [\ - \ + _] /) == [ "this", "is", "a", "test"] ', 만약 당신이 기대 한대로 작동하지 않는다면 정규 표현식이 문제가되어야합니다. –
패턴이 잘못되었음을 알고 있습니다. 그게 내가 단어로 성취하려고 노력하고있는 것을 게시 한 이유이다. 도움을 주셔서 감사합니다. – MrIzik
/^[\s\S]*?< *%/
당신이 원하는 것을해야한다.
^
은 문자열의 시작 부분에서 일치시킵니다.
[\s\S]
은 모든 문자와 일치합니다. 문자 그대로, 공백 문자 또는 비 공백 문자를 의미하며, .
은 개행 문자와 일치하지 않습니다.
*?
은 나머지 패턴이 일치하는 데 필요한 0 이상이지만 가장 적은 수와 일치합니다.
<
리터럴 '<
'
*
(참고 공간)과 일치 제로 이상의 공백 일치한다. [ ]*
이라고 쓰면 더 읽기 쉽습니다.
%
마지막으로 해당 문자와 일치합니다.
문자열 전체 (즉, %
이 문자열의 마지막 문자 여야 함)와 일치 시키려면 $
을 마지막으로 /
앞에 넣을 수 있습니다.
토큰 구분 기호로 사용하고자하는 것은 무엇입니까? 그렇게하면 정규식을 제공 할 수 있습니다. –
'str.split (/ <\ s * % \)'이 (가) 작동하지 않습니까? 몇 가지 예와 원하는 결과를 제공하십시오. – Qtax
예제 입력 및 출력을 제공하십시오. – Diode