回答編集履歴

2

コメント欄での質問に対応して追記

2021/09/16 04:50

投稿

dodox86
dodox86

スコア9256

test CHANGED
@@ -25,3 +25,51 @@
25
25
  PS>
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ ---
32
+
33
+ **本回答コメント欄でいただいた[2021/09/16 13:19]の質問コメントに対応:**
34
+
35
+
36
+
37
+ > 実際のlogでは
38
+
39
+ > DEBUG ** <<1>> ** ch_upd_user_nm=company_A ~, ~,~,
40
+
41
+ > というように続いており
42
+
43
+ > 一つ目のカンマの前「ch_upd_user_nm=company_A ~」までを表示できるとベターなのですが、この場合正規表現どうなりますか。。
44
+
45
+
46
+
47
+ であれば、「','ではない文字が0個以上」、と言ったところでしょうか。`-Pattern`オプションへの指定値としては`"ch_upd_user_nm=.*company[^,]*"`です。
48
+
49
+
50
+
51
+ ```PowerShell
52
+
53
+ PS> Get-Content test.log
54
+
55
+ DEBUG ** <<1>> ** ch_upd_user_nm=company_A,item2,item3
56
+
57
+ DEBUG ** <<1>> ** ch_upd_user_nm=company_B,item2
58
+
59
+ DEBUG ** <<1>> ** ch_upd_user_nm=company_HOGE
60
+
61
+
62
+
63
+ PS> Select-String -Path .\test.log -Pattern "ch_upd_user_nm=.*company[^,]*" | ForEach-Object {$_.Matches} | ForEach-Object {$_.Value}
64
+
65
+ ch_upd_user_nm=company_A
66
+
67
+ ch_upd_user_nm=company_B
68
+
69
+ ch_upd_user_nm=company_HOGE
70
+
71
+ PS>
72
+
73
+ ```
74
+
75
+ ※本当に適切な正規表現はご自身で調べ、考えてみてください。本回答は「パターンにマッチした部分のみを出力させる」ことが主旨のものです。

1

誤記修正

2021/09/16 04:50

投稿

dodox86
dodox86

スコア9256

test CHANGED
@@ -1,4 +1,4 @@
1
- 何となく指定のパターン`"ch_upd_user_nm=*company*"`もやりたいことを反映してないような気がしますが、どうでしょう。少しだけ修正し、「"company"の前後0個以上の文字」をパターンとして、パターンにマッチした値(Value)を出力する例です。
1
+ 何となく指定のパターン`"ch_upd_user_nm=*company*"`もやりたいことを反映してないような気がしますが、どうでしょう。少しだけ修正し、「"company"の前後0個以上の文字」をパターンとして、パターンにマッチした値(Value)を出力する例です。
2
2
 
3
3
 
4
4