2014-09-11 6 views
0

J'ai le modèle Regex suivant pour supprimer tous les caractères après les deux sauts de ligne.Motif Regex pour rechercher un mot

(?<=.+[\r\n]+.+[\r\n]+)([\s\S]*) 

Mon problème est que je voulais ici aussi ajouter un chèque pour un texte spécifique, par exemple après que 2 sauts de ligne et si elle se trouve, ne comprennent pas.

Et voici comment je le fais sur mon code C#:

string newComment = string.IsNullOrEmpty(regexPattern) ? emailBody : new Regex(regexPattern, RegexOptions.IgnoreCase).Replace(emailBody, string.Empty); 

EDIT

Je voulais trouver un texte spécifique, par exemple "Ceci est une signature:" alors si il est trouvé, il ne devrait pas être inclus et rien après cela aussi, tout en conservant la conception actuelle que tout après 2 sauts de ligne ne sera pas inclus

Exemples de chaînes:

string body = "Try comment."; 
string additionalBody = "This is a signature"; 
string newBody = body + System.Environment.NewLine + additionalBody + System.Environment.NewLine + "asd Asd"; 

Donc le newBody devrait aboutir à 3 paragraphes texte.

Il devrait afficher le "Try comment" seulement.

scénarios possibles peuvent être:

1) Au premier ou au deuxième alinéa, le texte peut être présent et doit être supprimée automatiquement.

2) Si la signature automatique n'est pas présente mais qu'il y a 3 paragraphes, supprimez le dernier paragraphe.

+1

« * est là mon problème que je voulais aussi ajouter un chèque pour un texte spécifique, par exemple après que 2 sauts de ligne et s'il est trouvé, ne l'incluez pas. * "- On ne sait pas ce que vous essayez d'accomplir. Pourriez-vous clarifier? –

Répondre

0

Que diriez-vous simplement:

(?<=(?:.+[\r\n]+){2})([\s\S]*)This is a signature 
+0

Désolé mais ça n'a pas marché de mon côté. – Gerald

+0

@ M42: \ R n'existe pas dans .NET –

+0

@walidtoumi: Dommage :-(. – Toto

0

Essayez ceci:

(?<=(?>.+[\r\n]+){2})(?:(?!\bThis is a signature\b)[\s\S])* 
Questions connexes