2014-09-16 3 views
2

문자열에 2 개 이상의 쉼표가 있는지 여부를 나타내는 정규 표현식을 작성하려고합니다. 예를 들면 다음과 같습니다.2 개 이상의 쉼표와 일치하는 정규식

hello,,457 
,,,,, 
dog,,,elephant,,,,, 

누구든지 유효한 정규 표현식을 사용할 수 있습니까?

+1

[도구 모든 네트워크를 통해 존재는 정규식을 작성하는 데 도움 수 있습니다. (http://regex101.com/), 당신은하지 않았다 경우 그것은 부끄러운 것 그것을 써. –

+3

그리고 정규 표현식을 사용하지 않아도됩니다. – anubhava

+1

@anubhava가 맞습니다. 'value.indexOf (",,")'를 쉽게 호출하고 결과가 음수가 아닌지 확인하십시오. regex를 사용하면이 경우 과잉으로 보입니다. 자세한 내용은 [indexOf (String)] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf (java.lang.String))를 참조하십시오. – Bobulous

답변

4

정규식 아래 것이라고는이 문자열을 일치 두 개 이상의 연속 된 쉼표,

^.*?,,+.*$ 
matches 방법으로 정규식을 사용하는 동안 당신은 시작과 끝 앵커를 포함 할 필요가 없습니다

DEMO

.

System.out.println("dog,,,elephant,,,,,".matches(".*?,,+.*")); 

출력 :

true 
+1

'. * ,,. *'와 욕심이 일치하면 제대로 작동 할 수 있습니까? 이것은 최소한 2 개의 쉼표 (op가 원하는)를 보장합니다 – TheLostMind

+0

고마워요,이 하나가 더 잘 작동했습니다. 정규식을 찾았는지 확인하기 위해 matches()를 사용했습니다. 여러분의 제안에 감사드립니다 모두 – MisterIbbs

+0

@ user3929182 [당신에게 가장 도움이되는 대답을 받아들이십시오.] –

-1

시도 :

int occurance = StringUtils.countOccurrencesOf("dog,,,elephant,,,,,", ",,"); 

또는

int count = StringUtils.countMatches("dog,,,elephant,,,,,", ",,"); 

가 따라 사용 라이브러리 : 여기에 솔루션을 확인 는 : Java: How do I count the number of occurrences of a char in a String?

+0

op가 2 r을 더 요구한다면, –

+0

if (count> 1) // 무언가를하십시오 –

+0

그냥 말해주세요. 나는 투표하지 않았습니다. Java 8에서 ur 방법을 시도 할 것입니다. –

7
String str ="hello,,,457"; 
Pattern pat = Pattern.compile("[,]{2,}"); 
Matcher matcher = pat.matcher(str); 
if(matcher.find()){ 
    System.out.println("contains 2 or more commas"); 
} 
+1

'Pattern.matches (". * [,] {2}. *", str)'도 사용할 수 있습니다. Pattern 클래스는 앞에서 언급 한 패턴을 사용하는 경우 '^'로 시작하고 '$'로 끝나는 – msrd0

+0

@ msrd0으로 끝나는 것처럼 작동하는 경우도 있습니다. 'System.out.println ("2 개 이상의 쉼표가 포함되어 있습니다.); 잘못되게된다. –

+0

@AvinashRaj 왜해야합니까? – msrd0

관련 문제