正規表現に苦労しています。Splunkクエリを作成していますが、フィールドの1つは期間であり、テキストを置き換える必要があります。以下はサンプル値とその置き換えです。
value| replacement
01| 01 sec
01:02| 01 min 02 sec
01:02:03|01 hr 02 min 03 sec
01+02:03:04|01 day 02 hr 03 min 04 sec
どんな助けでもありがたいです。ありがとう
私はこれがうまくいくと信じています:
((((?<day>\d{2})\+)?(?<hr>\d{2}):)?(?<min>\d{2}):)?(?<sec>\d{2})
上記は .NET で正常に動作し、perl と 100% 互換性があるはずです (ドキュメントによると、splunk が使用するフレーバーです)。
「sec」、「min」などを自分で追加する必要がありますが、名前付きキャプチャを使用して数字だけを抽出できます (名前付きキャプチャが成功したかどうかをテストして、追加する量を決定できます)。
分解:
(
(
(
(?<day>\d{2})\+ # day is optional, but req hr ('+' not captured)
)?
(?<hr>\d{2}): # hr is optional, but req min (':' not captured)
)?
(?<min>\d{2}): # min is optional, but req sec (':' not captured)
)?
(?<sec>\d{2}) # sec is required