回答編集履歴
3
不要文字削除
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の正規表現テストできるサイトがあったので追記します
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
番号追加
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
|