回答編集履歴
3
実行例に「/~username/hoge」といパターンを追加した。
answer
CHANGED
@@ -9,6 +9,8 @@
|
|
9
9
|
),()
|
10
10
|
$ echo '/~username/' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
|
11
11
|
(username),()
|
12
|
+
$ echo '/~username/hoge' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
|
13
|
+
(username),(hoge)
|
12
14
|
$ echo '/~username/hoge/hoge' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
|
13
15
|
(username),(hoge/hoge)
|
14
16
|
```
|
2
perlワンライナーの冗長な「$_」指定を削除した。
answer
CHANGED
@@ -4,11 +4,11 @@
|
|
4
4
|
その他の部分の解釈は合っていると思います。
|
5
5
|
|
6
6
|
```
|
7
|
-
$ echo '/~username' | perl -ne 'if (
|
7
|
+
$ echo '/~username' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
|
8
8
|
(username
|
9
9
|
),()
|
10
|
-
$ echo '/~username/' | perl -ne 'if (
|
10
|
+
$ echo '/~username/' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
|
11
11
|
(username),()
|
12
|
-
$ echo '/~username/hoge/hoge' | perl -ne 'if (
|
12
|
+
$ echo '/~username/hoge/hoge' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
|
13
13
|
(username),(hoge/hoge)
|
14
14
|
```
|
1
表現ちょっと修正。
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
> 4-10桁目... ([^/]+)⇒どういう意味?また行頭を評価しようとしている??
|
2
2
|
|
3
|
-
「[^(文字リスト)]」という正規表現での「^」は、行頭という意味ではなく「文字リストに含まれないもの」です。つまり「/」で
|
3
|
+
「[^(文字リスト)]」という正規表現での「^」は、行頭という意味ではなく「(文字リスト)に含まれないもの」です。つまり「/」でない文字の1回以上の繰り返しという意味です。
|
4
|
+
その他の部分の解釈は合っていると思います。
|
4
5
|
|
5
|
-
|
6
6
|
```
|
7
7
|
$ echo '/~username' | perl -ne 'if ( $_ =~ m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
|
8
8
|
(username
|