2012-11-20 2 views
1

내가 그 코드자바 패턴 필터

Pattern p = Pattern.compile("(\\d+)(\\w+)"); 
    Matcher m = p.matcher(content); 
    String num_letter = m.group(1); 
    String union = m.group(2); 

를 사용 13.6Gb, 12메가바이트, 15.5Kb 같은 데이터를 필터링하기 위해 만든 자바 패턴을 필요로하지만 진수를 감지 할 수 있으므로이 패턴을 수정하는 방법

답변

1

시도 소수 부분에 대한 조건부 일치를 추가 :

Pattern.compile("(\\d+(?:[.]\\d+)?)(\\w+)"); 

참고 드에 대한 비 캡처 그룹의 사용 cimal 부분.

+0

+1 그리고 안전을 위해 숫자와 단위 사이에'\\ s * '를 추가하는 것이 좋습니다. –

0

유무는 조건 소수점 경기의 변형입니다 :

Pattern.compile("(\\d+\\.?\\d+?)+(\\w+)"); 
0

이클립스를 사용하는 경우, 내가 같은 도구를 사용하는 것을 선호 : http://myregexp.com/eclipsePlugin.html - 그것은이 절대로 안돼요 쉽습니다.

당신의 눈을 마주 치고, 나는 (\\d+(\\.?(\\d+))?)과 비슷한 것을 말하면 원하는 것부터 끌어 내기 전에 일치하는 그룹의 수를 알 수 있습니다. 또는 명명 된 캡처 그룹을 사용하면 더 쉽게 읽을 수 있습니다.

- 라이언