정규식 질문이요.

dhrhd080의 이미지

p = re.compile('\d,\d,')
s = p.findall('{{1,2,3},{3,4,5,6},{7,8}}')

코드에서는 1,2, 와 3,4, 를 검출하려고 하는건데요. \d,\d, 을 (\d,){2}와 같이 반복구조로 바꾸려고
하는데 출력결과가 1,2, 와 3,4 가 아니라 2, 와 4, 네요. 어떻게 하면 고칠수있을까요?

익명 사용자의 이미지

1. Python인가요?
2. Python2인가요, 아니면 3인가요?
이런 디테일들이 질문과 크게 상관 없을 때도 있지만, 상당히 중요한 경우도 있습니다.
질문할 때 미리 알려주면 좋겠지요.

레퍼런스(https://docs.python.org/2.7/library/re.html#re.findall or https://docs.python.org/3.8/library/re.html#re.findall )에서도 볼 수 있듯, re.findall은 pattern에 group이 있으면, group의 list를 반환합니다.

이럴 땐 그냥 non-capturing parentheses를 써 주면 해결됩니다: (?:\d,){2}