回答編集履歴

3

修正

2022/09/03 14:27

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -6,7 +6,7 @@
6
6
  Matcher m = p.matcher("play ing");
7
7
  System.out.println(m.replaceAll(""));
8
8
  ```
9
- もし「正規表現に一致する文字列だけを取り出して再構成する」としたいのでしたら
9
+ もし「正規表現に一致する文字()だけを取り出して再構成する」としたいのでしたら
10
10
  ```java
11
11
  Pattern p = Pattern.compile("[a-zA-Z]");
12
12
  Matcher m = p.matcher("play ing");

2

さらに追加

2022/09/03 14:27

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -6,3 +6,11 @@
6
6
  Matcher m = p.matcher("play ing");
7
7
  System.out.println(m.replaceAll(""));
8
8
  ```
9
+ もし「正規表現に一致する文字列だけを取り出して再構成する」としたいのでしたら
10
+ ```java
11
+ Pattern p = Pattern.compile("[a-zA-Z]");
12
+ Matcher m = p.matcher("play ing");
13
+ StringBuilder sb = new StringBuilder();
14
+ while(m.find()) sb.append(m.group());
15
+ System.out.println(sb.toString());
16
+ ```

1

コード片追加

2022/09/03 14:20

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -1,3 +1,8 @@
1
1
  正規表現は(文字列の)表現であって、文字列をどう加工するかとは違います。まして Pattern クラスはその表現を保持するクラスであって、加工処理をしないのはドキュメントを見れば分かると思います。その辺りの認識はあっているでしょうか。
2
2
 
3
3
  Pattern クラスで空白にマッチする正規表現を保持させ、それを処理対象とマッチさせて Matcher インスタンスを得て、マッチした部分をどうにかする処理を書くことになります。
4
+ ```java
5
+ Pattern p = Pattern.compile(" ");
6
+ Matcher m = p.matcher("play ing");
7
+ System.out.println(m.replaceAll(""));
8
+ ```