parsing "*" - Quantifier {x, y} après rien
échoue lorsque j'essaie Regex.Replace()
méthode.
comment puis-je résoudre ce problème?
Replace.Method (String, String, MatchEvaluator, RegexOptions)
J'ai essayer le code
<%# Regex.Replace( (Model.Text ?? "").ToString(), patternText, "<b>" + patternText + "</b>", RegexOptions.IgnoreCase | RegexOptions.Multiline)%>
source d'informationauteur loviji
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayez d'utiliser uniquement la chaîne
"*"
comme une expression régulière? Au moins, c'est ce qui provoque des erreur ici:Le caractère
*
est spécial dans les expressions régulières, car il permet la précédent jeton à apparaître zéro ou plusieurs fois. Mais en fait, il y a quelque chose qui le précède.Si vous souhaitez faire correspondre un astérisque littéral, puis utilisez
\*
comme expression régulière. Sinon, vous devez spécifier ce peut répétés. Par exemple, l'expression régulièrea*
correspond à rien ou arbitraire de nombreuxa
s dans une rangée.Vous semblez avoir un seul
"*"
dans votre regex. Ce n'est pas correct. Un"*"
ne veut pas dire "n'importe quoi" (comme dans un fichier spec), mais "la précédente peut être 0 ou plusieurs fois".Si vous voulez "n'importe quoi", vous devez écrire
".*"
. Le"."
signifie "n'importe quel caractère unique", qui sera ensuite répété.Modifier:
La même chose pourrait se produire si vous utilisez d'autres quantificateurs par leur propre:
"+"
,"?"
ou"{n,m}"
(où n et m sont des nombres qui spécifient la limite inférieure et supérieure).ce qui pourrait expliquer le texte ou le message d'erreur que vous obtenez.
merci,
et je me fixe comme ça