2010-06-30 5 views
0

Possible en double:
Regular expression to match string not containing a word?Comment écrire une regex pour correspondre à une chaîne qui ne contient pas un mot?

Pour ne pas correspondre à un ensemble de caractères j'utiliser par exemple [^\"\\r\\n]*

Maintenant, je ne veux pas faire correspondre un jeu de caractères fixe, par ex. "| ="

En d'autres termes, je veux correspondre. (Non », pas \ r, pas \ n, et non | =)

EDIT: Je suis en train de modifier l'expression régulière La solution de délimitation simple que j'ai obtenue forme a CSV parser, mais maintenant je veux l'étendre pour inclure des délimiteurs multi-caractères. Je ne pense pas que les lookaheads fonctionneront, parce que je veux consommer, pas seulement affirmer et jeter ., les caractères correspondant à

+0

@George, comment est-ce une copie exacte? Oui, les deux sont résolus avec des retards, mais le mien nécessite plusieurs séquences correspondantes. –

Répondre

0

j'ai tout compris, il devrait être: ((?![\"\\r\\n]|[|][=]).)*

La regex complète, modifié à partir du lien analyseur CSV dans le message original, sera: ((?<field>((?![\"\\r\\n]|[|][=]).)*)|\"(?<field>([^\"]|\"\")*)\")([|][=]|(?<rowbreak>\\r\\n|\\n|$))

Cela correspond à aucun nombre de caractères de (non », non \ r, non \ n, et non | =), ou une chaîne entre guillemets, suivie de ("| =" ou fin de ligne)

Questions connexes