Comment faire correspondre une chaîne entre guillemets avec Regex
Supposons que j'ai le texte suivant dans un fichier texte
Premier Texte
"Texte"
"124arandom txt qui ne doit pas être analysé!@
"124 Du Texte"
"Tout 글"
ce texte un"s bien ne doit pas être analysée
Je tiens à le récupérer Some Text
124 Some Text
et 어떤 글
que les chaînes mises en correspondance. Le texte est lu ligne par ligne. La capture est, il doit correspondre à des langues étrangères ainsi, si c'est à l'intérieur des guillemets.
Mise à jour:
J'ai trouvé quelque chose de bizarre. J'ai été essayer quelques-uns des trucs aléatoires et a trouvé que:
string s = "어떤 글"
Regex regex = new Regex("[^\"]*");
MatchCollection matches = regex.Matches(s);
matches ont un count = 10 et ont généré des éléments vides à l'intérieur (L'analyse du texte est d'indice 2). C'est peut-être pourquoi j'ai continué à obtenir une chaîne vide lorsque je faisais simplement Regex.Remplacer. Pourquoi est-ce arrivé?
source d'informationauteur l46kok
Vous devez vous connecter pour publier un commentaire.
Si vous lisez le texte, ligne par ligne, puis la regex
trouverez toutes les chaînes entre guillemets, à moins que ceux-ci peuvent contenir échappé guillemets comme
"a 2\" by 4\" board"
.Pour correspondre à ceux correctement, vous devez
Si vous ne voulez pas les guillemets pour faire partie du match, l'utilisation lookaround affirmations:
Ces regexes, comme le C# regexes, peuvent être créées comme ceci:
.
Vous pouvez utiliser une expression régulière et essayez de faire correspondre avec n'importe quel texte que vous voulez. peut être dans une boucle ou ce que jamais vous avez besoin.