영문자가 아닌 문자를 따라 문자열을 문자열 배열로 분할하려고합니다. 예를 들어 :자바 문자열 비 알파벳 문자로 나누기
"Here is an [email protected]" => "Here", "is", "an" "ex", "mple"
나는 정규 표현식 "(?![\\p{Alpha}])"
와 String.split(String regex) 방법을 사용했습니다. 그러나 이렇게하면 문자열을
"Here", "_is", "_an", "_ex", "@ample"
(이 경우 밑줄에는 공백이 있음)으로 나눕니다. 이것은 ?!
정규 표현식 연산자가 "제로 - 너비"이고 실제로 입력 문자열에서 비 알파벳 문자 앞에 0 바이트 문자를 분리하고 제거하기 때문입니다.
문자열을 분리하는 동안 실제 비 알파 문자를 제거하려면 어떻게해야합니까? 너비가 0 인 너비 연산자가 있습니까? (모든 알파벳 문자와 일치 \p{Alpha}
, 반대)
"Here is an [email protected]".split("\\P{Alpha}+")
["Here", "is", "an", "ex", "mple"]
\P{Alpha}
어떤 알파벳이 아닌 문자와 일치 :
\ W +가 작동합니까? – Thilo
http://stackoverflow.com/questions/11332772/java-string-split-on-all-non-alphanumeric-except-apostrophes –
@Thilo 밑줄로는 작동하지 않습니다. – arshajii