문자열에 2 개 이상의 쉼표가 있는지 여부를 나타내는 정규 표현식을 작성하려고합니다. 예를 들면 다음과 같습니다.2 개 이상의 쉼표와 일치하는 정규식
hello,,457
,,,,,
dog,,,elephant,,,,,
누구든지 유효한 정규 표현식을 사용할 수 있습니까?
는문자열에 2 개 이상의 쉼표가 있는지 여부를 나타내는 정규 표현식을 작성하려고합니다. 예를 들면 다음과 같습니다.2 개 이상의 쉼표와 일치하는 정규식
hello,,457
,,,,,
dog,,,elephant,,,,,
누구든지 유효한 정규 표현식을 사용할 수 있습니까?
는정규식 아래 것이라고는이 문자열을 일치 두 개 이상의 연속 된 쉼표,
^.*?,,+.*$
matches
방법으로 정규식을 사용하는 동안 당신은 시작과 끝 앵커를 포함 할 필요가 없습니다
.
System.out.println("dog,,,elephant,,,,,".matches(".*?,,+.*"));
출력 :
true
'. * ,,. *'와 욕심이 일치하면 제대로 작동 할 수 있습니까? 이것은 최소한 2 개의 쉼표 (op가 원하는)를 보장합니다 – TheLostMind
고마워요,이 하나가 더 잘 작동했습니다. 정규식을 찾았는지 확인하기 위해 matches()를 사용했습니다. 여러분의 제안에 감사드립니다 모두 – MisterIbbs
@ user3929182 [당신에게 가장 도움이되는 대답을 받아들이십시오.] –
시도 :
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?는
op가 2 r을 더 요구한다면, –
if (count> 1) // 무언가를하십시오 –
그냥 말해주세요. 나는 투표하지 않았습니다. Java 8에서 ur 방법을 시도 할 것입니다. –
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");
}
[도구 모든 네트워크를 통해 존재는 정규식을 작성하는 데 도움 수 있습니다. (http://regex101.com/), 당신은하지 않았다 경우 그것은 부끄러운 것 그것을 써. –
그리고 정규 표현식을 사용하지 않아도됩니다. – anubhava
@anubhava가 맞습니다. 'value.indexOf (",,")'를 쉽게 호출하고 결과가 음수가 아닌지 확인하십시오. regex를 사용하면이 경우 과잉으로 보입니다. 자세한 내용은 [indexOf (String)] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf (java.lang.String))를 참조하십시오. – Bobulous