나는 다음과 같은 문자열을 가지고있다 : obj[attr1=val1 attr2=val2 attr3=val3]
개체 이름과 속성을 추출해야한다.자바 정규 표현식 : 그룹 수 고정
Pattern pathPattern = Pattern.compile("^(\\w+)(?:\\[(\\w+=\\w+)(?:\\s+(\\w+=\\w+))*\\])?$");
난 그냥 객체 이름과납니다 :
/^(\w+)(?:\[(\w+=\w+)(?:\s(\w+=\w+))*\])?$/
가 지금은 문제가 자바에서 결정이 :
이전, 나는 다음 정규 표현식을 사용하여 자바 스크립트에 유사한 작업을 결정했습니다 첫 번째 특성. Mather 클래스는 심볼 "*"을 고려하지 않고 "()"의 카운트에 대응하는 그룹 수를 얻는 것 같습니다.
js regexp처럼 java reg reg를 만들 수 있나요, 아니면 두 단계 추출을해야합니까?
는
네 말이 맞아요. '*'에 매치되는 모든 것을 고려하지 않습니다. 그러나 단지 한 그룹 수입니다. –
나는 그것이 이상한 실현 방법이라고 생각한다. 일치하는 데 reg exp 사용할 수 있지만 데이터를 사용할 수 없습니다. – Damask
'*'를 사용하면 패턴은 다음 일치 항목으로 계속 교체됩니다. 그러므로 마침내 일치하는 문자열이 하나뿐입니다. 그래서 그 유일한 그룹입니다. –