文字列を任意の記号String.split()
で分割するために渡す必要がある正規表現は何ですか?
ここで、記号とは、次のいずれかを意味します。
`~`, `!`, `@`, `#`, ...
基本的に、非文字および非数字の印刷可能な文字。
文字列を任意の記号String.split()
で分割するために渡す必要がある正規表現は何ですか?
ここで、記号とは、次のいずれかを意味します。
`~`, `!`, `@`, `#`, ...
基本的に、非文字および非数字の印刷可能な文字。
非単語を使用する必要があります。\W
\W
の逆です\w
\W
に似ているため[^a-zA-Z0-9_]
、単語以外の文字と一致します。_
また
簡単に使用できます[^a-zA-Z0-9]
これを使ってみることができます:-
str.split("[^a-zA-Z0-9]");
これには。は含まれませんunderscore
。
\W
と同等です:-"[a-zA-Z0-9_]"
Spring.split("[~!@$]")
分割したくない値のように具体的にするか、リストすることができますSpring.split("[^\\w]")
\W
またはを使用することもできます^\w
。詳細については、こちらを参照してください:正規表現: 文字クラス
String str = "a@v$d!e";
String[] splitted = str.split("\\W");
System.out.println(splitted.length); //<--print 4
また
String str = "a@v$d!e";
String[] splitted = str.split("[^\\w]");
System.out.println(splitted.length); //<--print 4