2010-12-14 6 views
0

J'apprends l'expression régulière, et j'ai deux quastions;Option Regex en C# et Regex dans Visual Studio

  1. je vis, que je peux définir une des options à l'expression rationnelle, mais je ne comprendre whah succès sont les options ECMAScript, CultureInvariant et ExplicitCapture, quelqu'un peut-il expliquer en mots simplement et donner un exemple aux options mentionnées ci-dessus ?
  2. en studio visuel, peut répliquer et trouver par regex, mais la syntaxe de vs différents de la syntaxe que l'objet regex utilise, quelqu'un sait pourquoi?

Répondre

3

ExplicitCaptureExplicitCapture rend toutes les parenthèses non-capturables, sauf si vous utilisez des captures nommées. Cela peut rendre les expressions rationnelles un peu plus lisibles parce que vous pouvez écrire (...) où vous auriez dû écrire (?:...) pour faire un groupe non-capturant.

L'inconvénient, bien sûr, est que si vous faites veulent capter une partie du match, vous devez écrire Name: (?<name>.*) au lieu de Name: (.*), par exemple.

ECMAScript provoque le moteur regex se comporte comme un moteur de regex ECMAScript, ce qui signifie laisser tomber beaucoup de fonctionnalités regex du moteur regex .NET (e g, JavaScript..) - mais il vous permet d'utiliser des expressions rationnelles JavaScript sans changement.

CultureInvariant indique au moteur regex d'ignorer les différences culturelles dans l'appariement des cas. Par exemple, en turc, la version majuscule de i n'est pas I comme elle est en anglais, mais İ, donc une correspondance sensible à la culture, sensible à la casse, de i ne correspondrait pas à I sur un système turc.

Vous voudrez peut-être vérifier this link et this link pour plus d'informations à ce sujet.