2012-04-23 6 views
0

Salut j'ai besoin de faire comme ça.Motif d'expression régulière correspondant

Actually **ctu** is a good university but **ctu's** is not. There are many **,ctus,** present. 

Ce que je veux faire est, je veux remplacer ctu dans la chaîne comme ceci.

Actually **<s>ctu<e>** is a good university but **<s>ctu's<e>** is not. There are many **,<s>ctus<e>,** present. 

Mais avec le motif suivant

**\\bctu*(?:['\\\\|""\\\\]*)\\w+\\b** 

Je reçois le mettre en tant que:

A**<s>ctu<e>**ally **<s>ctu<e>** is a good university but **<s>ctu's<e>** is not. There are many **,ctus,** present. 

Je ne veux pas remplacer l'intérieur CTU mots En fait. et aussi j'ai besoin de remplacer " ,ctus, " avec " ,<s>ctus<e>, " Comment puis-je y parvenir en utilisant regex. J'ai besoin de ça en C#. csharp.

Merci d'avance.

+0

"Je dois remplacer", ctus, "avec", ctus, "": quelle est la différence entre ceux ?? – Tigran

+0

@Tigran, vérifiez encore après un certain formatage de code :-) –

Répondre

0

le symbôle regex suivant tous les cas énumérés dans votre exemple:

@"(\bctu(?:'\w+)?\w*\b)" 

Ensuite, il suffit de remplacer le match avec @"<s>\1<e>"\1 est le backreference le match ci-dessus.

+0

Cela m'a aidé. Merci Joanna. –

0

Vous cherchez @"\bctu\b" (« CTU » avec des limites de mots des deux côtés, de sorte qu'il corresponde ctu mais pas Actually, ctu's ou ,ctus,) pour le premier motif de recherche et ",ctus," (exactement la chaîne ,ctus,, quel que soit l'endroit où il pourrait tomber dans un mot) comme le deuxième motif de recherche? Pour rechercher les deux à la fois, vous pouvez utiliser @"(\bctu\b|,ctus,)". Par contre, en C#, vous pouvez écrire des littéraux regex beaucoup plus facilement en utilisant la notation @"" (verbatim strings) au lieu de "". Par exemple. pour obtenir regex pour comprendre une limite de mot, il doit voir \b, qui peut être représenté comme @"\b" ou "\\b", et un littéral \ est "\\\\" ou @"\\". Le premier est plus facile à lire, en particulier dans les cas plus complexes.

Si cela ne répond pas à votre question, donnez un exemple clair d'entrée/sortie attendue.

+0

'\ bctu \ b' fait (en partie) correspondre' ctu's' parce qu'il y a une limite de mot entre 'u' et' ''. –