回答編集履歴

4

再度訂正

2016/12/19 02:23

投稿

KSwordOfHaste
KSwordOfHaste

スコア18392

test CHANGED
@@ -1,6 +1,10 @@
1
- 以下の回答は間違いを含んでいます。先頭「文字列A」を削除するとう点が抜けてました
1
+ 以下の回答は間違いを含んでいます。-rがないで拡張正規表現が扱えななど
2
2
 
3
- yunanoさんが正しいパターンを提示しておられますので、以下は考え方の参考とでもしていただければと思います。失礼しました。
3
+ yunanoさんが正しいパターンを提示しておられますので、以下はパターンをマッチさせる考え方の参考とでもしていただければと思います。
4
+
5
+
6
+
7
+ 実機確認をおこたるとダメという残念な回答になってしまいました。失礼しました。
4
8
 
5
9
 
6
10
 

3

回答に誤りがある点を明記

2016/12/19 02:23

投稿

KSwordOfHaste
KSwordOfHaste

スコア18392

test CHANGED
@@ -1,3 +1,13 @@
1
+ 以下の回答は間違いを含んでいます。先頭の「文字列A」を削除するという点が抜けてました。
2
+
3
+ yunanoさんが正しいパターンを提示しておられますので、以下は考え方の参考とでもしていただければと思います。失礼しました。
4
+
5
+
6
+
7
+ ---
8
+
9
+
10
+
1
11
  正規表現を扱うとき、「どのようなパターンを」という点を正確に表現できれば自ずと正しいパターンマッチが行えます。
2
12
 
3
13
 

2

誤り制定

2016/12/19 02:14

投稿

KSwordOfHaste
KSwordOfHaste

スコア18392

test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  追記:マッチした部分を残すという方針も考えられます。
54
54
 
55
- 例えば先頭1文字が必ず'>'とわかっているならパターンは`^>([^_]+_[^_]+)_`のように考えられるので、sedをパイプで2回実行する必要はなく一度の置換でよくなります。
55
+ 例えば先頭1文字が必ず'>'とわかっているならパターンは`^.([^_]+_[^_]+)_`とした場合括弧で挟また部分となるので、sedをパイプで2回実行する必要はなく一度の置換でよくなります。
56
56
 
57
57
 
58
58
 
@@ -60,7 +60,7 @@
60
60
 
61
61
 
62
62
 
63
- 先頭の`.`にマッチする文字とパターンの最後の文字`_`は置換後のパターン`\1`には含まれないことに注意してください。
63
+ 比較パターンの中の先頭の`.`にマッチする文字とパターンの最後の文字`_`は置換後のパターン`\1`には含まれないことに注意してください。
64
64
 
65
65
 
66
66
 

1

追記

2016/12/19 01:51

投稿

KSwordOfHaste
KSwordOfHaste

スコア18392

test CHANGED
@@ -43,3 +43,25 @@
43
43
 
44
44
 
45
45
  要するにパターンを正確に指定する考え方に慣れるとよいと思います。
46
+
47
+
48
+
49
+ ---
50
+
51
+
52
+
53
+ 追記:マッチした部分を残すという方針も考えられます。
54
+
55
+ 例えば先頭1文字が必ず'>'とわかっているならパターンは`^>([^_]+_[^_]+)_`のように考えられるので、sedをパイプで2回実行する必要はなく一度の置換でよくなります。
56
+
57
+
58
+
59
+ `sed 's/^.([^_]+_[^_]+)_/\1/g'`
60
+
61
+
62
+
63
+ 先頭の`.`にマッチする文字とパターンの最後の文字`_`は置換後のパターン`\1`には含まれないことに注意してください。
64
+
65
+
66
+
67
+