2012-12-11 2 views

답변

3

캐럿 ^ 텍스트의 시작 부분과 일치합니다. [,]+은 임의의 수의 쉼표와 일치합니다.

^.*[,].*$ 

도트가 개행 문자를 제외한 모든 문자와 일치 : 항목 후에 당신이 찾고 전에 당신이 필요로하는 모든 것을 무시하는 무언가이다. *은 반복 (0 - 임의의 숫자)입니다.

여기서 문자열을 다듬는 것은 불필요합니다.

10

같은 번호를 일치

은 내가

textTestAr.trim().matches("^[,]+$")  

을 사용하려고하지만 아무 일도 발생하지 않습니다 이 문제에 대한 정규 표현식. 간단한 textTestAr.indexOf(',')을 사용하면됩니다.

+0

나는 동의하지 않습니다. 더 나은 마스터와'indexOf'와 친구들과 함께이 하나의 필요한 도구를 찌를. – krlmlr

+5

@ user946850 진정한 마스터는 모든 가능한 악기를 동일한 은총으로 사용합니다. 이것이 루비 나 펄이라면, 정규 표현식으로 모든 것을 처리하는 것은 관용적이지만 자바 정규 표현식에서는 일류 시민이 아닙니다. –

+0

코드의 다음 요구 사항이 숫자와 점 하나만으로되어 있는지 확인하는 경우 어떻게합니까? 아니면 다른 문자를 확인하고 싶습니까? 또는 ... 대안으로 정규 표현식을 변경하려는 노력을 비교하십시오. 먼저 "간단한"도구를 사용하십시오 (일치하는 항목이 없으면 다시 발생합니다 -1 - 예외? API를 찾아 보겠습니다 ...). 당신은 어쨌든 "도구"가 필요합니다. – krlmlr

1

첫 번째 문자는 전체 문자열이 쉼표로만 구성되었다고 주장합니다. 두 번째 문자열은 문자열 (0 제외) 및 쉼표로 구성되지만 특정 문자열은 필요하지 않습니다. (그들은 암시하기 때문에) matches를 사용할 때 ^...$ 필요하지 않습니다

.*,.* 

참고 : 당신은이를 사용할 수 있습니다. 그러나 Marko 또는 yentup의 단순한 indexOf 솔루션이 더 좋습니다.

3

그냥에 대한 정규식이 필요하지 마십시오

0

textTestAr.contains(",")을 수행

textTestAr.trim().replace(',','.'); 
4

그냥 할 if(textTestAr.contains(",")) System.out.println("It does!");

0
public boolean hasComma(String string) { 
    if (string.indexOf(",") > -1) { 
     return true; 
    } 
    return false; 
} 
관련 문제