이 그룹이 괄호 안에있는 모든 항목을 캡처하지 않는 이유는 무엇입니까?

데이비드 J.

첫 번째 그룹에서 괄호로 묶이지 않은 문자열과 괄호로 묶인 문자열을 캡처하는 정규식을 만들려고합니다.

예 :

2 (3) (4) (5)

2-첫 번째 그룹, 3-두 번째 그룹 등이어야합니다.

내가 생각 해낸 것은이 정규식입니다. (JavaScript를 사용하고 있습니다)

([^()]*)(?:\((([^)]*))\))*

그러나 A (B) (C) (D)와 같은 문자열을 입력하면 A와 D 만 캡처됩니다.

https://regex101.com/r/HQC0ib/1

누구든지 이것에 대해 나를 도울 수 있고 아마도 오류가 어디에 있는지 설명 할 수 있습니까?

Wiktor Stribiżew

\G연속 일치를 일치시키기 위해 JS 정규식에서 앵커를 사용할 수없고 .NET / PyPi 정규식 라이브러리 에서처럼 각 캡처 그룹에 대한 스택이 없기 때문에 2 단계 접근 방식을 사용해야합니다. 1) 문자열을 다음과 같이 일치시킵니다. 텍스트의 전체 줄무늬, 2) 필요한 값을 얻기 위해 사후 처리합니다.

var s = "2(3)(4)(5) A(B)(C)(D)";
var rx = /[^()\s]+(?:\([^)]*\))*/g;
var res = [], m;
while(m=rx.exec(s)) {
  res.push(m[0].split(/[()]+/).filter(Boolean));
}
console.log(res);

나는 추가 \s부정 된 문자 클래스에 [^()]나는 하나의 문자열로 예제를 추가하기 때문이다.

패턴 세부 정보

  • [^()\s]+- (, )및 공백을 제외한 1 개 이상의 문자
  • (?:\([^)]*\))* -0 개 이상의 시퀀스 :
    • \( - ㅏ (
    • [^)]* -0 개 이상의 문자 )
    • \) - ㅏ )

분할 정규식은 [()]+하나 이상의 )또는 (문자 와 일치 filter(Boolean)하고 빈 항목을 제거하는 것입니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

xaml의 StackPanel에있는 모든 항목을 새 줄에 표시하지 않는 이유는 무엇입니까?

분류에서Dev

정규식 : 괄호 안에있는 모든 것을 캡처하고 중첩 된 괄호도 캡처합니다.

분류에서Dev

모든 항목을 포함하는 하나의 배열이 아니라 모든 항목에 대한 배열이있는 이유는 무엇입니까?

분류에서Dev

Orion Context Broker가 패턴 표현식이있는 쿼리에서 예상하는 모든 항목을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

내 어레이가 그 안의 모든 것을 호출하는 이유는 무엇입니까?

분류에서Dev

캡처 그룹을 노출하지 않는 REGEX 함수에 대한 대안이 있습니까?

분류에서Dev

괄호 사이에 있지 않은 모든 항목 삭제

분류에서Dev

<select> 요소에서 모든 항목이 제거되지 않는 이유는 무엇입니까?

분류에서Dev

내 정규식의 선택적 캡처 그룹이 작동하지 않는 이유는 무엇입니까?

분류에서Dev

phpmyadmin이 모든 행을 내 보내지 않는 이유는 무엇입니까?

분류에서Dev

Excel 차트가 모든 x 축 시간 값을 0:00에 그룹화하는 이유는 무엇입니까?

분류에서Dev

Excel 차트가 모든 x 축 시간 값을 0:00에 그룹화하는 이유는 무엇입니까?

분류에서Dev

괄호가 반복 유형을 변경하는 이유는 무엇입니까?

분류에서Dev

모든 정규식 캡처를 얻지 못하는 이유는 무엇입니까?

분류에서Dev

중괄호 확장이 지원되지 않는 이유는 무엇입니까?

분류에서Dev

pos () 보고서가 캡처되지 않은 그룹과도 일치하는 이유는 무엇입니까?

분류에서Dev

캡처 그룹이있는이 정규식이 bash에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 정규식 패턴이 최종 쌍만 캡처하는 이유는 무엇입니까? 각 경기에서 모든 쌍을 캡처해야합니다

분류에서Dev

값이 괄호 안에있는 행을 삭제하는 방법은 무엇입니까?

분류에서Dev

이러한 그리드 항목이 모든 수직 공간을 채우는 이유는 무엇입니까?

분류에서Dev

co_varnames가 모든 변수 이름 목록을 반환하지 않는 이유는 무엇입니까?

분류에서Dev

캡처 그룹을 사용하는 두 정규식의 성능이 다른 이유는 무엇입니까?

분류에서Dev

기본 키를 통해 그룹화하고 그룹의 나머지 항목을 모두 그룹화 된 값 목록으로 수집하여 배열의 모든 데이터 항목을 재구성하는 방법은 무엇입니까?

분류에서Dev

대괄호가 쉘 확장을 방해하는 이유는 무엇입니까?

분류에서Dev

대괄호가 쉘 확장을 방해하는 이유는 무엇입니까?

분류에서Dev

내 MapKit 콜 아웃보기가 너무 작아서 표시해야하는 모든 항목을 표시하지 않는 이유는 무엇입니까?

분류에서Dev

함수의 괄호 안에 숫자가있는 이유는 무엇입니까?

분류에서Dev

테이블의 모든 필드에 varchar 유형을 사용하지 않는 이유는 무엇입니까?

분류에서Dev

NaN 값이있는 여러 속성 (즉, 사용 가능한 모든 속성)으로 항목을 그룹화하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    xaml의 StackPanel에있는 모든 항목을 새 줄에 표시하지 않는 이유는 무엇입니까?

  2. 2

    정규식 : 괄호 안에있는 모든 것을 캡처하고 중첩 된 괄호도 캡처합니다.

  3. 3

    모든 항목을 포함하는 하나의 배열이 아니라 모든 항목에 대한 배열이있는 이유는 무엇입니까?

  4. 4

    Orion Context Broker가 패턴 표현식이있는 쿼리에서 예상하는 모든 항목을 반환하지 않는 이유는 무엇입니까?

  5. 5

    내 어레이가 그 안의 모든 것을 호출하는 이유는 무엇입니까?

  6. 6

    캡처 그룹을 노출하지 않는 REGEX 함수에 대한 대안이 있습니까?

  7. 7

    괄호 사이에 있지 않은 모든 항목 삭제

  8. 8

    <select> 요소에서 모든 항목이 제거되지 않는 이유는 무엇입니까?

  9. 9

    내 정규식의 선택적 캡처 그룹이 작동하지 않는 이유는 무엇입니까?

  10. 10

    phpmyadmin이 모든 행을 내 보내지 않는 이유는 무엇입니까?

  11. 11

    Excel 차트가 모든 x 축 시간 값을 0:00에 그룹화하는 이유는 무엇입니까?

  12. 12

    Excel 차트가 모든 x 축 시간 값을 0:00에 그룹화하는 이유는 무엇입니까?

  13. 13

    괄호가 반복 유형을 변경하는 이유는 무엇입니까?

  14. 14

    모든 정규식 캡처를 얻지 못하는 이유는 무엇입니까?

  15. 15

    중괄호 확장이 지원되지 않는 이유는 무엇입니까?

  16. 16

    pos () 보고서가 캡처되지 않은 그룹과도 일치하는 이유는 무엇입니까?

  17. 17

    캡처 그룹이있는이 정규식이 bash에서 작동하지 않는 이유는 무엇입니까?

  18. 18

    내 정규식 패턴이 최종 쌍만 캡처하는 이유는 무엇입니까? 각 경기에서 모든 쌍을 캡처해야합니다

  19. 19

    값이 괄호 안에있는 행을 삭제하는 방법은 무엇입니까?

  20. 20

    이러한 그리드 항목이 모든 수직 공간을 채우는 이유는 무엇입니까?

  21. 21

    co_varnames가 모든 변수 이름 목록을 반환하지 않는 이유는 무엇입니까?

  22. 22

    캡처 그룹을 사용하는 두 정규식의 성능이 다른 이유는 무엇입니까?

  23. 23

    기본 키를 통해 그룹화하고 그룹의 나머지 항목을 모두 그룹화 된 값 목록으로 수집하여 배열의 모든 데이터 항목을 재구성하는 방법은 무엇입니까?

  24. 24

    대괄호가 쉘 확장을 방해하는 이유는 무엇입니까?

  25. 25

    대괄호가 쉘 확장을 방해하는 이유는 무엇입니까?

  26. 26

    내 MapKit 콜 아웃보기가 너무 작아서 표시해야하는 모든 항목을 표시하지 않는 이유는 무엇입니까?

  27. 27

    함수의 괄호 안에 숫자가있는 이유는 무엇입니까?

  28. 28

    테이블의 모든 필드에 varchar 유형을 사용하지 않는 이유는 무엇입니까?

  29. 29

    NaN 값이있는 여러 속성 (즉, 사용 가능한 모든 속성)으로 항목을 그룹화하는 방법은 무엇입니까?

뜨겁다태그

보관