- ★★Java質問・相談スレッド174★★ [転載禁止]©2ch.net
440 :デフォルトの名無しさん[sage]:2015/08/27(木) 00:25:44.27 ID:h/c9vpsy - abc!def$$ghij%klmn
abcd%efg!hijklmn abcdefgh$$ijklm!n みたいな文字列があったとして、$$, !, %のどの文字よりも左にある文字列を抽出するスマートな方法ってある? 上の例だと abc abcd abcdefgh を抽出したい
|
- ★★Java質問・相談スレッド174★★ [転載禁止]©2ch.net
443 :デフォルトの名無しさん[sage]:2015/08/27(木) 03:03:21.34 ID:h/c9vpsy - 正規表現も考えてみたのですが
String str = "abcd%efg!hijklmn"; String regex1 = ".+?(?=!)"; String regex2 = ".+?(?=\\$\\$)"; String regex3 = ".+?(?=%)"; Pattern p1 = Pattern.compile(regex1); Pattern p2 = Pattern.compile(regex2); Pattern p3 = Pattern.compile(regex3); Matcher m1 = p1.matcher(str); if (m1.find()) { str = m1.group(); } Matcher m2 = p2.matcher(str); if (m2.find()) { str = m2.group(); } Matcher m3 = p3.matcher(str); if (m3.find()) { str = m3.group(); } System.out.println(str); なんだか冗長すぎる気がしてしまうのです これが一番無難な方法でしょうか?
|
- ★★Java質問・相談スレッド174★★ [転載禁止]©2ch.net
448 :デフォルトの名無しさん[sage]:2015/08/27(木) 12:34:08.83 ID:h/c9vpsy - >>444-446
これぞスマートな方法です! 勉強になりました どうもありがとうございます!
|