2009-01-14 9 views
1

Je suis essayez d'utiliserComment utiliser regex pour une partie de chaîne en C#

(?<key>.{5}keyword.{5}?)

pour tester « autre chaîne mot-clé autre texte »

il obtiendra « mot-clé anneau othe »

et je veux que "akeyword other text" ou "other string keyworda" ou "akeywordc" correspondent également.

Comment modifier regex?


J'ai une longue chaîne et je veux obtenir trouver des mots clés et obtenir avec PERFIX et chaîne suffixe

demande 5 juste un échantillon, il peut changer à un nombre quelconque comme 50

ma question est si la position du mot-clé est inférieure à 5 et qu'elle ne correspond pas.

comment obtenir PERFIX ou une chaîne suffixe avec mot-clé lorsque la longueur de chaîne de PERFIX ou suffixe est

Unknow.


Désolé, ma question n'est pas claire.

Je veux obtenir une chaîne de caractères ou un suffixe avec un mot-clé. et je veux obtenir le préfixe ou la chaîne sufiix au plus 5 mots.

exemple:

"ABCDE mot-clé ABCDE" Je veux obtenir "BCDE mot-clé ABCD"

et quand chaîne de préfixe moins de 5 mot

"un mot-clé ABCDE" Je veux obtenir « un mot-clé ABCD »

ou une chaîne de suffixe moins de 5 mot

"mot-clé ABCD un" Je veux obtenir "mot-clé abcd un"

+0

Pouvez-vous élaborer sur votre exemple? Quelles cordes d'entrée avez-vous exactement et que devrait-on faire correspondre? –

Répondre

1

Il n'est pas clair ce que vous voulez passer et échouer; en particulier, le .{5} exige 5 caractères avant le keyword, donc je ne suis pas sûr de savoir comment "akeywordc" devrait correspondre. Le [\s\S]{5} dit "5 espace blanc ou non-espace" ... encore une fois, cela exige 5 caractères après (et pourrait probablement être .{5}).

Alors: comment voulez-vous qu'il se comporte?

Par exemple, (?<key>.{1,5}keyword.{1,5}) correspondra à 1 à 5 caractères avant ou après (avidement).

+0

+1 pour une explication claire – annakata

0

Cela pourrait être aussi simple que (.*?)keyword(.*?) ou il pourrait être (.{0,5}) basé sur la réponse de Sébastien, cela dépend encore de ce que vous voulez dire par "inconnu". Voulez-vous dire qu'un nombre quelconque de correspondances serait acceptable, ou seulement un nombre spécifique de correspondances, mais que vous ne connaissez pas ce nombre avant l'exécution - dans quel cas connaissez-vous ce nombre lors de l'exécution (nous ne pouvons pas répondez-y pour vous).

Il serait préférable de créer un ensemble de chaînes d'échantillons correspondantes et de chaînes d'échantillons non correspondantes.


modifier de OP mise à jour 2: il semble que vous avez besoin d'une combinaison de réponses marque et sebastiens

(?<key>.{0,5}keyword.{0,5}) 

qui comprendra 0 à 5 caractères de préfixe et 0 à 5 caractères de suffixe avec le match de

2

cela pourrait être ce que vous cherchez:

(?<key>.{0,5}keyword[\s\S]{0,5}) 
1

ce?

(?<key>.{0,5}keyword.{0,5}) 

Vous pouvez utiliser quelque chose comme The Regulator à pirater au sujet pendant que vous apprenez comment résoudre ce problème; enseigne à un homme à pêcher, et tout ça.

Questions connexes