이 정규식과 일치하는 문자열은 ^.+:[0-9]+(\.[0-9]+)*/[0-9]+$
이며 쉽게 (Text):(Double)/(Int)
으로 시각화 할 수 있습니다. 이 문자열을 세 부분으로 나누어야합니다. 일반적으로 이것은 (Text)
콜론을 포함 할 수 있다는 것을 제외하고는 쉬운 것입니다, 그래서 나는 어떤 결장에 분할 할 수없는 - 오히려 마지막 대장. 이미이 일을 꽤 깔끔한 작업을 수행하므로선택적으로 String.split()을 사용하여 마지막 구분 기호에서 문자열을 분할합니다.
.*
욕심이지만 사항 String.split에 정규 표현식 (등이 실 거예요 작업)은 구분 기호의 일환으로 내 (Text)
먹을 때문입니다. 이상적으로 나는 String []을 반환 할 무언가를 3 개의 문자열로 갖고 싶습니다. 나는 이것을 위해 String.split()을 사용하지 않고 100 % 괜찮습니다.
방지하기 위해 필요한 느낌이 좋아, 이제 말을 대신 사용'[\ D \.] +' '\ d + (\. \ d +) *'를 필요로한다면 무엇을 할까? 그룹 0,1,3 만 안전하게 사용할 수 있을까? 즉,'sometext : other : 2/4 '와'sometext : other : 2.0/4' sill 그룹은 같은 방법으로 처리 할 수 있습니까? – Huckle
그룹 1, 2, 4가 될 수 있지만, 신경 쓰지 않아도됩니다. : \ d + (? : \. \ d +)? –
그룹 (0)은 일치하는 문자열 전체를 반환합니다. 인덱스가 0에서 시작하지 않습니다. @AlanMoore는 엄격한 이중 정규식에 대한 좋은 제안을합니다. –