2013-09-05 2 views
11

나는이 정규식 사용하고 있습니다 :정규식 옵션 그룹

SH 
6208069141055 
BC000388 
20110412101855 

질문 : 어떻게 4 개 그룹으로 분리

SH_6208069141055_BC000388_20110412101855 

:

((?:[a-z][a-z]+))_(\d+)_((?:[a-z][a-z]+)\d+)_(\d{13}) 

이 같은 문자열을 일치를 첫 번째 그룹을 선택 사항으로 지정하여 결과 그룹을 빈 문자열로 만듭니다.
가능한 모든 경우에 4 개의 그룹을 원합니다. 이 경우에 대한

입력 문자열 :

(?:([a-z]{2,})_)?(\d+)_([a-z]{2,}\d+)_(\d+)$ 

내가 입력이 있는지 잘 모르겠어요 : (첫 번째 그룹 후 아무 밑줄) 당신은 쉽게 정규식을 단순화 할 수

6208069141055_BC000388_20110412101855 

답변

10

이 될 수 있습니다 첫 번째 그룹이없는 문자열에 밑줄이 있거나 없지만 전체 문자열 인 경우 위 정규식을 사용할 수 있습니다.

regex101 demo

당신이 볼 수 있듯이, 두 번째 경기에서 일치하는 그룹 1은 비어와 일치하는 그룹 2

을 시작