Java上でregexを使用して数値文字列を分割したいと考えています。 私はオンライン正規表現テストを使用して正規表現が正しいです。 しかし、Javaでは間違っています。正規表現を使用してJavaで数値文字列を分割
Pattern pattern = Pattern.compile("[\\\\d]{1,4}");
String[] results = pattern.split("123456");
// I expect 2 results ["1234","56"]
// Actual results is ["123456"]
何も分からないことはありますか?
私はこの質問が退屈であることを知っています。しかし、私はこの問題を解決したい。 回答
Pattern pattern = Pattern.compile("[\\d]{1,4}");
String[] results = pattern.split("123456");
// Results length is 0
System.out.println(results.length);
が機能しません。私はそれを試してみました。結果には何も返されません。 回答する前にお試しください。
私を助けてくれた人に本当に感謝します。
ソリューション:
Pattern pattern = Pattern.compile("([\\d]{1,4})");
Matcher matcher = pattern.matcher("123456");
List<String> results = new ArrayList<String>();
while (matcher.find()) {
results.add(matcher.group(1));
}
出力2件の結果[ "1234"、 "56"]
splitは空白の配列を取得しています。これは、splitが区切り文字の間に*区切り文字を戻して区切り文字を破棄するためです。たぶんこれは役立ちます:http://stackoverflow.com/questions/2206378/how-to-split-a-string-but-also-keep-the-delimiters http://stackoverflow.com/questions/275768/is-there -a-way-to-split-strings-with-string-split-and-the-delimiters – Thilo
今、理解していただきありがとうございます。 –