正規表現の仕組みのため、パターンを使用して情報を1つの結果または文字列として抽出することはできません。
あなたのような使用することができ
'[02/24/2016][03:37:27.996]'.match(/\[([^\]]+)\]\[([^\]]+)\]/).captures # => ["02/24/2016", "03:37:27.996"]
:
'[02/24/2016][03:37:27.996]'.match(/\[([^\]]+)\]\[([^\]]+)\]/).captures.join(' ') # => "02/24/2016 03:37:27.996"
または介在"[]"
文字を含む1つのキャプチャ:あなたは、2つのキャプチャを取得しますいずれか
'[02/24/2016][03:37:27.996]'.match(/\[([^\]]+\]\[[^\]]+)\]/).captures # => ["02/24/2016][03:37:27.996"]
あなたはそれを他の方法を行うことができますしかし:
'[02/24/2016][03:37:27.996]'[1..-2].sub('][', ' ') # => "02/24/2016 03:37:27.996"
[[1, 10], [13, 12]].map {|s, l| '[02/24/2016][03:37:27.996]'[s, l] }.join(' ') # => "02/24/2016 03:37:27.996"
'[02/24/2016][03:37:27.996]'.tr('[]', ' ').strip.squeeze(' ') # => "02/24/2016 03:37:27.996"
'[02/24/2016][03:37:27.996]'.gsub(/[\[\]]+/, ' ').strip # => "02/24/2016 03:37:27.996"
'[02/24/2016][03:37:27.996]'.scan(/[\d\/:.]+/).join(' ') # => "02/24/2016 03:37:27.996"
の人が正規表現について学ぶとき、すべてがそれらを使用するのに最適な機会のように見える、すべてがヒットするチャンスです:私はそれを行うだろうかである、または、簡単なスライスとsub
を使用して、
正規表現ハンマーの問題。残念ながらそれは真実に近いものではありません。彼らは強力ですが、不適切に使用されるとコードが遅くなり、非常に微妙なバグやロジックホールが発生し、デバッグが難しくなります。なぜなら、複雑になるほどコードが複雑になるからです。それらをシンプルに保つか、それらをアセンブルするコードを使用して生成する方法を学んでください。
これは、不要なテキストを置き換えるか、いくつかのコードを使用して2つのグループの内容を連結することで達成されます。隣接していない2つのテキスト部分にマッチする*正規表現パターンを使うことはできません。 –
正規表現からしか達成できない方法はありますか? –
[書き込むことができないため、いくつかのプレースホルダテキスト] No. –