2011-01-25 2 views
0

j'ai une liste séparée par des virgules de première et lastnames que je dois convertir en SQL (existe des espaces après la virgule):convertir séparées par des virgules string paires avec regex

joe, cool 

alice, parker 

etc.

devrait devenir:

(firstname ='joe' and lastname = 'cool') or 

(firstname ='alice' and lastname = 'parker') 

Comment puis-je obtenir avec une expression régulière?

+0

quelle langue? – codaddict

+0

Je le ferais manuellement dans n'importe quel éditeur qui tourne sous linux: vi, kate, etc. – trajectory

Répondre

1

En Perl, vous pouvez le faire:

s/(\S+),\s*(\S+)/(firstname ='\1' and lastname = '\2')/ 

Depuis la ligne de commande:

> perl -pe "s/(\S+),\s*(\S+)/(firstname ='\1' and lastname = '\2')/" input.txt 

Entrée:

joe, cool 
alice, parker 

Sortie:

(firstname ='joe' and lastname = 'cool') 
(firstname ='alice' and lastname = 'parker') 
+0

Avoir un tiret dans un nom (parker-jones) donne ceci: parker- (lastname = 'jones' et firstname = 'sally' – trajectory

+0

J'ai modifié. Remplacé '\ w' (caractère de mot) par' \ S' (caractère non-espace). – detunized

Questions connexes