Sie können ein Muster nicht zum Extrahieren der Informationen als ein Ergebnis oder eine Zeichenfolge verwenden, da reguläre Ausdrücke funktionieren. Sie erhalten entweder zwei Aufnahmen:
'[02/24/2016][03:37:27.996]'.match(/\[([^\]]+)\]\[([^\]]+)\]/).captures # => ["02/24/2016", "03:37:27.996"]
, die Sie wie verwenden:
'[02/24/2016][03:37:27.996]'.match(/\[([^\]]+)\]\[([^\]]+)\]/).captures.join(' ') # => "02/24/2016 03:37:27.996"
oder ein Capture enthält die dazwischenliegenden "[]"
Zeichen:
'[02/24/2016][03:37:27.996]'.match(/\[([^\]]+\]\[[^\]]+)\]/).captures # => ["02/24/2016][03:37:27.996"]
Sie können es andere Möglichkeiten, tun obwohl:
'[02/24/2016][03:37:27.996]'[1..-2].sub('][', ' ') # => "02/24/2016 03:37:27.996"
die eine einfache Scheibe und sub
verwendet wird, ist, wie ich es tun würde, oder:
[[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"
Wenn die Leute über reguläre Ausdrücke alles wie die perfekte Gelegenheit sieht lernen, sie zu benutzen, alles ist die Chance, die getroffen Problem mit dem regulären Ausdruck Hammer. Leider ist das nicht nah an der Wahrheit. Sie sind leistungsfähig, aber wenn sie nicht korrekt verwendet werden, können sie Ihren Code verlangsamen, sie können sehr subtile Fehler und logische Lücken einbringen, und sie können Ihren Code erheblich schwieriger zu debuggen machen, da sie, wenn sie komplexer werden, auch komplizierter werden. Halten Sie sie einfach für geistig gesund oder lernen Sie, wie Sie sie mit Code generieren, der sie für Sie zusammenstellt.
Dies wird entweder durch Ersetzen des unnötigen Textes oder durch Verwendung von Code zum Verketten der beiden Gruppeninhalte erreicht. Sie können nicht einfach ein einzelnes Regex-Muster verwenden, um * zwei nicht benachbarte Textteile * zusammenzufassen. –
gibt es keine Möglichkeit, nur aus Regex zu erreichen? –
[ein Platzhaltertext, da Sie nicht einfach schreiben können ...] Nr. –