Je reçois des chaînes dans ce format:Expression régulière ne fonctionne pas
"tel:+441234567890;ext=7890"
Pour extraire les différents numéros, je l'habitude d'utiliser ces modèles regex, qui renvoient la sortie montré:
ParseTelephoneNumber
public static string ParseTelephoneNumber(string rawInput)
{
var temp = Regex.Replace(rawInput, ";.*", "");
return Regex.Replace(temp, ".*:", "");
}
+441234567890
ParseExtension
public static string ParseExtension(string rawInput)
{
return Regex.Replace(rawInput, ".*=", "");
}
Cela semble fonctionner très bien dans les deux Visual Studio 2012
et Visual Studio 2015
.
Cependant, si ce code fonctionne en VS 2012
dans le cadre du code pour une forme InfoPath 2013
, je vois ces résultats:
ParseExtension
Tél: +441234567890
ParseTelephoneNumber
+441234567890
Quelle est la raison pour cela? Est-ce que InfoPath
utilise un moteur différent pour calculer les expressions régulières?
'Regex' fait partie de .NET. InfoPath ne change pas son comportement. Êtes-vous certain que ce que vous voyez à l'écran est ce qui est passé à la méthode? La chaîne d'entrée HTML est-elle codée peut-être? –