teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

不要文字削除

2018/07/11 06:38

投稿

euledge
euledge

スコア2404

answer CHANGED
@@ -13,7 +13,7 @@
13
13
  ```java
14
14
  String url = "/100/people?c=1234";
15
15
  assertTrue(url.matches("\/100\/people\?c=[0-9]+"));
16
- assertTrue(url.matches("\/[0-9]+\/people\?c=[0-9]+"));```
16
+ assertTrue(url.matches("\/[0-9]+\/people\?c=[0-9]+"));
17
17
  ```
18
18
 
19
19
  `$companyId`が変数展開でなく文字列だとすると以下のようになります。

2

Javaの正規表現テストできるサイトがあったので追記します

2018/07/11 06:38

投稿

euledge
euledge

スコア2404

answer CHANGED
@@ -21,4 +21,9 @@
21
21
  ```java
22
22
  String url = "/$companyId/people?c=1234";
23
23
  assertTrue(url.matches("\/\$companyId\/people\?c=[0-9]+"));
24
- ```
24
+ ```
25
+
26
+ 【追記】
27
+ Javaの正規表現テストできるサイトがあったので追記します。
28
+
29
+ [Regular Expression Test Drive](http://regex-testdrive.com/ja/)

1

番号追加

2018/07/11 06:18

投稿

euledge
euledge

スコア2404

answer CHANGED
@@ -1,9 +1,9 @@
1
1
  誤りは以下の2点かと思います。
2
2
 
3
- urlはString変数だと思いますが String.matchesの引数には正規表現を表すStringを指定します。
3
+ 1. urlはString変数だと思いますが String.matchesの引数には正規表現を表すStringを指定します。
4
4
  [java.lang.String#matches](https://docs.oracle.com/javase/jp/6/api/java/lang/String.html#matches(java.lang.String))
5
5
 
6
- 正規表現中に含まれる文字の中に正規表現で使用する文字が含まれる場合はエスケープする必要があります。今回のケースでは `/ ? $` がこれにあたります。
6
+ 2. 正規表現中に含まれる文字の中に正規表現で使用する文字が含まれる場合はエスケープする必要があります。今回のケースでは `/ ? $` がこれにあたります。
7
7
 
8
8
  `"/$companyId/people?c=$peopleId"` の中の$が変数展開とした場合
9
9
  $companyId = 100