간단한 regex를 사용하여 여러 번 일치시키는 방법. 나는 이것을 시도 : (?:key:)((?:\s*'[^']+'))
,하지만 작동하지 않습니다.Regex match group
입력
키 'VAL1'을 val2 'val3'
출력
군 1 = VAL1
군 2 = val2만큼
그룹 3 = val3
편집 : 원하는 키 다음에 simples 따옴표로 묶인 모든 태그를 찾는 방법?
간단한 regex를 사용하여 여러 번 일치시키는 방법. 나는 이것을 시도 : (?:key:)((?:\s*'[^']+'))
,하지만 작동하지 않습니다.Regex match group
입력
키 'VAL1'을 val2 'val3'
출력
군 1 = VAL1
군 2 = val2만큼
그룹 3 = val3
편집 : 원하는 키 다음에 simples 따옴표로 묶인 모든 태그를 찾는 방법?
원하는 것을 직접 수행 할 수는 없습니다. regex를 사용하면 다양한 수의 캡처 그룹을 가질 수 없습니다.
그러나. 그룹 수에 제한이있는 경우 해당 제한에 대해 (?:\s*('[^']+')*)?
을 반복 할 수 있습니다. 따라서 주어진 예제와 일치 할 수 있으려면 필요합니다. (?:\s*('[^']+')*)?
3 회 반복되었는지가
key:(?:\s*('[^']+')*)?(?:\s*('[^']+')*)?(?:\s*('[^']+')*)?
참고.
단지이 패턴 '[^']+'
반복하는 쉽고 더 좋을 수 있습니다. 어떤 언어도 언급하지 않았으므로 파이썬에서 자유롭게 사용했습니다.
import re
string = "'val1' 'val2' 'val3'"
for i, match in enumerate(re.finditer(r"'([^']+)'", string), start=1):
print("group %d = %s" % (i, match.group(1)))
상기 인쇄 될 실행될 때
군 1 = VAL1
군 2 = val2만큼
그룹 3 = val3
을 따라서 대신하려고 "가변"수의 캡처 그룹을 만듭니다. 대신 따옴표 패턴에 대한 모든 일치를 반복하십시오.
은 다음과 중복 될 수 있습니다. http://stackoverflow.com/questions/37003623/how-to-capture-multiple-repeated-groups –
내 문제를 해결하지 못함 –
결과가 무엇인지 예를 게시하십시오. 최대한 검색 패턴을 설명하십시오. 네가 할 때, "그룹"... 뭐야? – zer00ne