2009-04-15 21 views
0

Ich weiß, brauche Hilfe mit Regex Ich bin nicht sehr schlau, wenn es darum geht herauszufinden, aber ich werde dorthin gelangen.regex ersetzen

Meine Frage:

Ich brauche Bannergrößen aus einer Zeichenfolge zu entfernen,

Bannergrößen 486x60 oder 49 X 120

sein können Wie kann ich Regex verwenden, um dies mit leeren zu ersetzen?

Antwort

2
s/\d+\s*[Xx]\s*\d+// 
+0

meinst du "\ s \ d + \ s *" statt "s/\ d + \ s *"? – Keng

+0

Nicht wirklich, nein. Das bereitgestellte Informations-OP reicht nicht aus, um zu wissen, ob dies angemessen ist. – chaos

0

Die Grundidee ist so etwas wie

 
1 or more digits 
a space (optional) 
X 
another space (optional) 
1 or more digits 

Die genaue Syntax hängt davon ab, welche Sprache Sie verwenden, aber es wäre so etwas wie

s/\d+[ ]?X[ ]?\d+// 

oder, aussehen, wenn Sie wollen um sicher zu gehen, dass das X entweder auf beiden Seiten oder gar keine Leerzeichen hat, können Sie die beiden Fälle trennen:

Dies deckt genau die beiden von Ihnen genannten Fälle ab. Wenn Sie eine beliebige Menge Whitespace um das X herum zulassen wollen oder das X in Kleinbuchstaben schreiben wollen, deckt die Lösung des Chaos dies ab.

+0

Dies ist, was ich mit Dank endete, lass es mich wissen, wenn ihr etwas falsch findet. [0-9] + \ s * [Xx] \ s [0-9] + Auch hier ist ein Tool, das ich auf dieser Website verwenden. http://regex.larsolavtorvik.com/ Danke Jungs –

+0

Ok, das ist gleichbedeutend mit Chaos Antwort, nur dass Sie jetzt * ein Leerzeichen nach dem X * benötigen. Wenn Sie es optional machen möchten, fügen Sie ein * nach die zweite \ s. –