두 개의 동일한 문자열 사이의 모든 문자열을 일치시키는 정규식

사친 G.

예를 들어이 문자열 -- This -- is -- one -- another -- comment --이 있습니다. 일치하는 요소가 "This", "is", "one", "another"및 "comment"가되기를 원합니다.

--\s+([^--]+)\s+--"This", "one"및 "comment"와 같은 일치하는 요소를 제공 하는이 정규식 시도했습니다.

나는 다른 문제가 검색 한, 그들은 모두이 즉 같은 솔루션을 제공 #A#하고 나는 얻을 것이다 A하지만 위해 #A#B#또한 내가 얻을 수 A있지만,이 경우 내가 두 요소를 원하는 AB둘 다 둘 개 사이이기 때문에 #문자.

나는 자바 스크립트 정규식에 대해 테스트하고 있지만 솔루션은 플랫폼 / 언어에 관계없이 있어야한다고 생각합니다.

Wiktor Stribiżew

일반적으로 다음과 같은 패턴을 사용해야합니다.

STRING([\s\S]*?)(?=STRING|$)

일치 STRING한 다음, 가능한 한 적은 0 개 이상의 문자를 그룹 1에 캡처합니다. STRING*이 단어 바로 앞에서 중지 하는 첫 번째 발생 **까지 (?=...)왜냐하면는 너비가 0 인 어설 션이므로 긍정적 인 예견 이기 때문 입니다. 일치하는 텍스트 또는 문자열 끝을 사용하지 않습니다.

패턴의 일반적인 변형은 다음과 같습니다.

STRING((?:(?!STRING)[\s\S])*)

문자 시퀀스를 시작하지 않는 0 개 이상의 발생 문자와 일치 하는 강화 된 탐욕스러운 토큰 ,을 사용합니다 .(?:(?!STRING)[\s\S])*STRING

현재 솔루션의 모든 하위 문자열을 얻으려면 다음과 같은 lookahead를 사용하십시오.

/--\s+([\s\S]*?)(?=\s+--)/g
                ^^^^^^^^^

regex 데모를 참조하십시오 .

[^--]+아닌 하나 이상의 기호와 일치 -하지만 같지 않은 텍스트는 일치하지 않습니다 --. 단일 문자 [...]와 일치하는 문자 클래스입니다 . 한 문자에서 패턴의 첫 번째 발생까지 길이에 관계없이 모든 텍스트를 일치 시키려면 가능한 한 적은 0+ 문자 (게으른 수량 자로 인해)와 같은 구성을 사용할 수 있습니다 .[\s\S]*?*?

JS 데모 :

var s = '-- This -- is -- one -- another -- comment --';
var rx = /--\s+([\s\S]*?)(?=\s+--)/g;
var m, res=[];
while (m = rx.exec(s)) {
  res.push(m[1]);
}
console.log(res);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

정규식 : 두 문자열 사이의 모든 문자 일치

분류에서Dev

따옴표 사이의 모든 문자열을 일치시키는 정규식

분류에서Dev

다른 두 문자열 사이의 문자열을 일치시키는 정규식 표현식

분류에서Dev

파이썬의 모든 고유 문자와 문자열 (영숫자)을 일치시키는 정규식

분류에서Dev

두 구분자 사이의 정확한 문자열을 일치시키는 정규식

분류에서Dev

Bash 정규식, 두 문자열 사이의 일치 문자열

분류에서Dev

정규식-두 문자열 사이의 일치 문자열

분류에서Dev

정규식을 사용하여 문자열에서 두 개 이상의 점을 일치시키는 방법

분류에서Dev

정규식을 사용하여 두 문자열 사이의 모든 일치 항목 찾기

분류에서Dev

단어를 제외한 두 문자열 사이의 모든 항목과 일치하는 정규 표현식

분류에서Dev

파이썬에서 문자열 내에서 두 개의 동일한 문자열을 찾는 정규식

분류에서Dev

문자열 사이의 두 문자를 일치시키고 바꾸는 정규식

분류에서Dev

문자의 처음 두 단어를 알기 위해 정규식과 문자열을 일치시키는 방법

분류에서Dev

두 일치 사이의 정규식 반환 문자열

분류에서Dev

정규식은 2 자 사이의 모든 문자열과 일치합니다.

분류에서Dev

정규식에서 0과 10 사이의 두 자리와 두 자리 이하의 전체 문자열을 일치시키는 방법은 무엇입니까?

분류에서Dev

쉼표로 구분, 여러 줄 및 두 문자열 사이의 단어를 일치시키는 정규식

분류에서Dev

'모든 문자열'정규식의 JS 일치는 전체 및 빈 문자열을 반환합니다.

분류에서Dev

두 개의 다른 문자열 또는 문자 사이의 문자열을 찾는 정규식 수식

분류에서Dev

두 개의 공백이없는 문자열과 일치하는 정규식 #

분류에서Dev

특정 문자 앞의 모든 단어를 일치시키는 정규식

분류에서Dev

문자열의 모든 요일 이름과 일치하는 정규식

분류에서Dev

문자열의 모든 단일 문자와 일치하는 정규식을 어떻게 작성합니까?

분류에서Dev

정규식 : 원래 문자열이 일부 필터와 일치하는 경우 다른 문자열 내의 모든 문자열을 바꾸는 방법

분류에서Dev

한 숫자를 두 번 일치시키고 다른 모든 숫자를 한 번 일치시키는 정규식 정의

분류에서Dev

2 개의 하위 문자열 사이에 임의의 수의 요소를 일치시키는 Python 정규식?

분류에서Dev

Java 파일의 모든 문자열 리터럴을 바꾸는 정규식

분류에서Dev

다른 문자열을 포함 할 수있는 두 문자열 간의 정규식 일치

분류에서Dev

JS 두 개의 동일한 문자열 문자 사이의 하위 문자열을 얻는 방법

Related 관련 기사

  1. 1

    정규식 : 두 문자열 사이의 모든 문자 일치

  2. 2

    따옴표 사이의 모든 문자열을 일치시키는 정규식

  3. 3

    다른 두 문자열 사이의 문자열을 일치시키는 정규식 표현식

  4. 4

    파이썬의 모든 고유 문자와 문자열 (영숫자)을 일치시키는 정규식

  5. 5

    두 구분자 사이의 정확한 문자열을 일치시키는 정규식

  6. 6

    Bash 정규식, 두 문자열 사이의 일치 문자열

  7. 7

    정규식-두 문자열 사이의 일치 문자열

  8. 8

    정규식을 사용하여 문자열에서 두 개 이상의 점을 일치시키는 방법

  9. 9

    정규식을 사용하여 두 문자열 사이의 모든 일치 항목 찾기

  10. 10

    단어를 제외한 두 문자열 사이의 모든 항목과 일치하는 정규 표현식

  11. 11

    파이썬에서 문자열 내에서 두 개의 동일한 문자열을 찾는 정규식

  12. 12

    문자열 사이의 두 문자를 일치시키고 바꾸는 정규식

  13. 13

    문자의 처음 두 단어를 알기 위해 정규식과 문자열을 일치시키는 방법

  14. 14

    두 일치 사이의 정규식 반환 문자열

  15. 15

    정규식은 2 자 사이의 모든 문자열과 일치합니다.

  16. 16

    정규식에서 0과 10 사이의 두 자리와 두 자리 이하의 전체 문자열을 일치시키는 방법은 무엇입니까?

  17. 17

    쉼표로 구분, 여러 줄 및 두 문자열 사이의 단어를 일치시키는 정규식

  18. 18

    '모든 문자열'정규식의 JS 일치는 전체 및 빈 문자열을 반환합니다.

  19. 19

    두 개의 다른 문자열 또는 문자 사이의 문자열을 찾는 정규식 수식

  20. 20

    두 개의 공백이없는 문자열과 일치하는 정규식 #

  21. 21

    특정 문자 앞의 모든 단어를 일치시키는 정규식

  22. 22

    문자열의 모든 요일 이름과 일치하는 정규식

  23. 23

    문자열의 모든 단일 문자와 일치하는 정규식을 어떻게 작성합니까?

  24. 24

    정규식 : 원래 문자열이 일부 필터와 일치하는 경우 다른 문자열 내의 모든 문자열을 바꾸는 방법

  25. 25

    한 숫자를 두 번 일치시키고 다른 모든 숫자를 한 번 일치시키는 정규식 정의

  26. 26

    2 개의 하위 문자열 사이에 임의의 수의 요소를 일치시키는 Python 정규식?

  27. 27

    Java 파일의 모든 문자열 리터럴을 바꾸는 정규식

  28. 28

    다른 문자열을 포함 할 수있는 두 문자열 간의 정규식 일치

  29. 29

    JS 두 개의 동일한 문자열 문자 사이의 하위 문자열을 얻는 방법

뜨겁다태그

보관