사실, 확인하고 싶은 [공간]문자열에 구아바에만 영숫자 문자가 있는지 확인하려면 어떻게합니까? .-_ : 그것은 단지 숫자를 더한이있는 경우
만약 외부 라이브러리를 사용하여 이미 내 프로젝트에 포함 된 이후 나는 ... 구아바를 사용하는
싶습니다사실, 확인하고 싶은 [공간]문자열에 구아바에만 영숫자 문자가 있는지 확인하려면 어떻게합니까? .-_ : 그것은 단지 숫자를 더한이있는 경우
만약 외부 라이브러리를 사용하여 이미 내 프로젝트에 포함 된 이후 나는 ... 구아바를 사용하는
싶습니다정규 표현식이없는 솔루션은 구아바의 CharMatcher
클래스 사용 될 수 있으며 다소 더 읽기 :
boolean matched = CharMatcher.JAVA_LETTER_OR_DIGIT.or(CharMatcher.WHITESPACE)
.or(CharMatcher.anyOf("_.-")).matchesAllOf(yourString);
은 아마 아스키 문자가 사용 사례에 대한 확인이다 (?)를? 그렇다면 다음을 사용하십시오.
boolean matched = CharMatcher.ASCII.matchesAllOf(yourString);
예제 및 설명은 wiki page을 참조하십시오.
또한, 일정에 정규 표현을 추출하고이를 미리 계산 할 수 있습니다 : 당신이 CharMatcher
의 설명서를 읽으면 당신은 "digit", "letter" 및 자바 "whitespace" 꽤있는 것을 알 수 있습니다, 더 흥미로운 무엇
private static final CharMatcher CHAR_MATCHER = CharMatcher.JAVA_LETTER_OR_DIGIT
.or(CharMatcher.WHITESPACE)
.or(CharMatcher.anyOf("_.-"))
.precomputed();
모호한 용어 :
문자가 자바의 정의에 따라 자인지를 결정합니다. ASCII 숫자 만 일치 시키려면
inRange('0', '9')
을 사용할 수 있습니다.또는
는 캐릭터가 자바의 정의에 따라 문자인지 여부를 확인합니다. 라틴 알파벳의 글자 만 일치시키는 경우inRange('a', 'z').or(inRange('A', 'Z'))
을 사용할 수 있습니다.
그래서 당신은 할 수 있습니다 사용을 명시 적으로 문자 범위 :
private static final CharMatcher CHAR_MATCHER_ASCII =
CharMatcher.inRange('0', '9')
.or(CharMatcher.inRange('a', 'z'))
.or(CharMatcher.inRange('A', 'Z'))
.or(CharMatcher.anyOf(" _.-")) // note space here
.precomputed();
사실 당신은 어떤 라이브러리가 필요하지 않습니다. 당신은 정규 자바로 그것을 할 수 있습니다.
정규식 : ([A-Za-z0-9\-\_\. ]+)
myStr.matches("([A-Za-z0-9\-\_\. ]+)");
[: alnum :] - 아파치 정규 표현식 API에 대한 영숫자 문자 내가 찾던 무엇
, 감사 –