Ich muss den folgenden Text mit einem regulären Ausdruck in Perl übereinstimmen.Generic Regulärer Ausdruck in Perl für den folgenden Text
PS3XAY3N5SZ4K-XX_5C9F-S801-F04BN01K-00000-00
Der Ausdruck, die ich geschrieben habe, ist:
(\w+)\-(\w+)\-(\w+)\-(\w+)\-(\w+)\-(\w+)
Aber ich möchte etwas mehr generisch. Mit generisch, was ich meine, möchte ich eine beliebige Anzahl von Bindestrichen (-
) darin haben.
Vielleicht gibt es so etwas wie in Regex, d. H. Wenn ein Zeichen vorhanden ist, dann suchen Sie nach etwas anderem. Kann mir bitte jemand helfen?
Mehr über mein Problem:
AB-ab
abc-MNO-xyz
LMI-jlk-mno-xyz
.
.
.
.
.
.
.
.
.
und so weiter ...!
Ich möchte alle Muster übereinstimmen .. um genauer zu sein mein String (Feel free zu verwenden \ w Da kann ich Großbuchstaben, Kleinbuchstaben, numerische und '_'underscore hier.) Kann als eine Reihe von irgendwelchen betrachtet werden Anzahl der alphanumerischen Teilstrings mit Bindestrich ('-') als Trennzeichen
Wenn alles, was Sie wollen die ganze Zeichenfolge entsprechen, verwenden Sie so etwas wie 'my ($ id) =/([w + -] + _ [\ w -] +) /'. Wenn Sie alle Komponenten benötigen, ohne zu wissen, wie viele es sind, können Sie 'my @parts = split (/ [_-] /, $ id)' machen. – reinierpost
Dies entspricht Strings wie AB-BX- - am Ende –
Das ist einfach zu beheben. – reinierpost