2014-06-06 3 views
0

문자열 '924527-28-17-EU'가 있고 '92XXXX-XX-XX-XX'문자열이 있다고 가정 해 봅시다. 두 번째 문자열은 첫 번째 문자열의 형식입니다. X 그룹이 항상 분리되어 있다고 가정합니다.Regex Group 캡쳐 생성

궁극적 인 목표는 [ '4527', '28 ','17 ','EU ']를 얻는 것입니다. 어떻게해야합니까?

내가 생각하고 있던 한 가지는 '92 (....) - (..) - (..) - (..) '또는 그 중 일부를 멋지게 포착하기위한 것이었지만, 정말로 거기에 도착하는 법을 알지 못합니다.

도움을 주시면 감사하겠습니다. 감사!

* 편집 : 저는 파이썬으로 글을 쓰고 있습니다.

** 편집 : 더 구체적으로,이 같은 뭔가 싶어 :

re.search('92(....)\-(..)\-(..)\-(..)', '924527-28-17-EU').groups() 
+0

어떤 언어/환경을 쓰고 있습니까? – ClickRick

+0

저는 파이썬으로 글을 쓰고 있습니다. –

+0

그래서 질문에 태그를 달아서 시도한 코드와 실패한 것에 대한 설명을 보여주십시오. – ClickRick

답변

0

난 당신이 92로 시작하는 문자열을 찾는 데에만 관심이 있다면 귀하의 질문에서 불분명 해요, 또는 경우 그것을 단지 예시로 보여 주려고합니다. 특별히 당신이 시도 할 수 있었다 (92)로 시작하는 문자열을 찾기 위해 노력하는 경우 또는

a = '924527-28-17-EU' 
b = a[2:].split("-") 
# print b returns ['4527', '28', '17', 'EU'] 

:

그냥 다음 문자열 오프 첫 두 문자를 트리밍하고자하는 원하는 경우에 당신이 사용할 수있는 분할 :

if a[:2] == "92": 
    c = a[2:].split("-") 
#c now returns ['4527', '28', '17', 'EU'] 
+0

그래, 나는 이것에 대해 잘 모를 것 같아 ... 하이픈이 있는지 없는지에 관계없이 작동해야한다. 이것은 단지 예일뿐입니다. 이론적으로 나는 X를 '.'로 대체 할 수 있습니다. 그리고 나서 그것을 문자 단위로 처리 한 다음 '. +'부분 문자열의 시작과 끝 부분에 괄호를 추가하십시오. 그러나 더 좋은 방법이있는 것처럼 느낍니다. –