回答編集履歴

3

実行例に「/~username/hoge」といパターンを追加した。

2020/11/03 06:23

投稿

hidezzz
hidezzz

スコア1248

test CHANGED
@@ -20,6 +20,10 @@
20
20
 
21
21
  (username),()
22
22
 
23
+ $ echo '/~username/hoge' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
24
+
25
+ (username),(hoge)
26
+
23
27
  $ echo '/~username/hoge/hoge' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
24
28
 
25
29
  (username),(hoge/hoge)

2

perlワンライナーの冗長な「$_」指定を削除した。

2020/11/03 06:23

投稿

hidezzz
hidezzz

スコア1248

test CHANGED
@@ -10,17 +10,17 @@
10
10
 
11
11
  ```
12
12
 
13
- $ echo '/~username' | perl -ne 'if ( $_ =~ m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
13
+ $ echo '/~username' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
14
14
 
15
15
  (username
16
16
 
17
17
  ),()
18
18
 
19
- $ echo '/~username/' | perl -ne 'if ( $_ =~ m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
19
+ $ echo '/~username/' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
20
20
 
21
21
  (username),()
22
22
 
23
- $ echo '/~username/hoge/hoge' | perl -ne 'if ( $_ =~ m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
23
+ $ echo '/~username/hoge/hoge' | perl -ne 'if ( m#^/~([^/]+)/?(.*)# ) { print "($1),($2)\n" }'
24
24
 
25
25
  (username),(hoge/hoge)
26
26
 

1

表現ちょっと修正。

2020/11/03 06:18

投稿

hidezzz
hidezzz

スコア1248

test CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- 「[^(文字リスト)]」という正規表現での「^」は、行頭という意味ではなく「文字リストに含まれないもの」です。つまり「/」でい文字の1回以上の繰り返しという意味です。
5
+ 「[^(文字リスト)]」という正規表現での「^」は、行頭という意味ではなく「(文字リスト)に含まれないもの」です。つまり「/」でい文字の1回以上の繰り返しという意味です。
6
6
 
7
-
7
+ その他の部分の解釈は合っていると思います。
8
8
 
9
9
 
10
10