RegexOptions Enum
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Innehåller uppräknade värden som ska användas för att ange alternativ för reguljära uttryck.
Den här uppräkningen stöder en bitvis kombination av dess medlemsvärden.
public enum class RegexOptions
[System.Flags]
public enum RegexOptions
[<System.Flags>]
type RegexOptions =
Public Enum RegexOptions
- Arv
- Attribut
Fält
| Name | Värde | Description |
|---|---|---|
| None | 0 | Anger att inga alternativ har angetts. Mer information om standardbeteendet för motorn för reguljära uttryck finns i avsnittet "Standardalternativ" i artikeln Alternativ för reguljära uttryck . |
| IgnoreCase | 1 | Anger skiftlägesokänslig matchning. Mer information finns i avsnittet "Case-Insensitive Matchning" i artikeln Alternativ för reguljära uttryck . |
| Multiline | 2 | Flerradsläge. Ändrar innebörden av ^ och $ så att de matchar i början respektive slutet av alla rader, och inte bara början och slutet av hela strängen. Mer information finns i avsnittet "Flerradsläge" i artikeln Alternativ för reguljära uttryck . |
| ExplicitCapture | 4 | Anger att de enda giltiga avbildningarna uttryckligen namnges eller numreras grupper i formuläret (?<namn>...). Detta gör att namnlösa parenteser kan fungera som icke-kapslade grupper utan den syntaktiska klumpigheten i uttrycket (?:...). Mer information finns i avsnittet "Endast explicita avbildningar" i artikeln Alternativ för reguljära uttryck . |
| Compiled | 8 | Anger att det reguljära uttrycket kompileras till MSIL-kod i stället för att tolkas. Kompilerade reguljära uttryck maximerar körningsprestanda på bekostnad av initieringstiden. Det här värdet ska inte tilldelas egenskapen Options när metoden anropas CompileToAssembly(RegexCompilationInfo[], AssemblyName) . Mer information finns i avsnittet "Kompilerade reguljära uttryck" i artikeln Alternativ för reguljära uttryck . |
| Singleline | 16 | Anger enkelradsläge. Ändrar innebörden av punkten (.) så att den matchar varje tecken (i stället för varje tecken utom \n). Mer information finns i avsnittet "Enkelradsläge" i artikeln Alternativ för reguljära uttryck . |
| IgnorePatternWhitespace | 32 | Eliminerar ej inkapslade blanksteg från mönstret och aktiverar kommentarer markerade med #. Det här värdet påverkar dock inte eller eliminerar blanksteg i teckenklasser, numeriska kvantifierare eller token som markerar början på enskilda språkelement för reguljära uttryck. Mer information finns i avsnittet Ignorera tomt utrymme i artikeln Alternativ för reguljära uttryck . |
| RightToLeft | 64 | Anger att sökningen kommer från höger till vänster i stället för från vänster till höger. Mer information finns i avsnittet "Höger till vänster-läge" i artikeln Alternativ för reguljära uttryck . |
| ECMAScript | 256 | Aktiverar ECMAScript-kompatibelt beteende för uttrycket. Det här värdet kan endast användas tillsammans med IgnoreCasevärdena , Multilineoch Compiled . Användningen av det här värdet med andra värden resulterar i ett undantag. Mer information om alternativet finns i ECMAScript avsnittet "ECMAScript Matching Behavior" i artikeln Alternativ för reguljära uttryck . |
| CultureInvariant | 512 | Anger att kulturella skillnader i språk ignoreras. Mer information finns i avsnittet "Jämförelse med invariant kultur" i artikeln Alternativ för reguljära uttryck . |
Exempel
I följande exempel definieras två reguljära uttryck som identifierar upprepade ord i text men som instansieras med olika RegexOptions värden. Det första reguljära uttrycket är skiftlägesokänsligt. -fallet ignoreras när du avgör om ett ord är identiskt med föregående ord. Det andra reguljära uttrycket är skiftlägeskänsligt. ett ord måste matcha fallet med föregående ord exakt för att betraktas som en dubblett.
using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main ()
{
// Define a case-insensitive regular expression for repeated words.
Regex rxInsensitive = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
// Define a case-sensitive regular expression for repeated words.
Regex rxSensitive = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
RegexOptions.Compiled);
// Define a test string.
string text = "The the quick brown fox fox jumps over the lazy dog dog.";
// Find matches using case-insensitive regular expression.
MatchCollection matches = rxInsensitive.Matches(text);
// Report the number of matches found.
Console.WriteLine("{0} matches found in:\n {1}",
matches.Count,
text);
// Report on each match.
foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
Console.WriteLine("'{0}' repeated at positions {1} and {2}",
groups["word"].Value,
groups[0].Index,
groups[1].Index);
}
Console.WriteLine();
// Find matches using case-sensitive regular expression.
matches = rxSensitive.Matches(text);
// Report the number of matches found.
Console.WriteLine("{0} matches found in:\n {1}",
matches.Count,
text);
// Report on each match.
foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
Console.WriteLine("'{0}' repeated at positions {1} and {2}",
groups["word"].Value,
groups[0].Index,
groups[1].Index);
}
}
}
// The example produces the following output to the console:
// 3 matches found in:
// The the quick brown fox fox jumps over the lazy dog dog.
// 'The' repeated at positions 0 and 4
// 'fox' repeated at positions 20 and 25
// 'dog' repeated at positions 50 and 54
//
// 2 matches found in:
// The the quick brown fox fox jumps over the lazy dog dog.
// 'fox' repeated at positions 20 and 25
// 'dog' repeated at positions 50 and 54
Imports System.Text.RegularExpressions
Public Module Test
Public Sub Main()
' Define a case-insensitive regular expression for repeated words.
Dim rxInsensitive As New Regex("\b(?<word>\w+)\s+(\k<word>)\b", _
RegexOptions.Compiled Or RegexOptions.IgnoreCase)
' Define a case-sensitive regular expression for repeated words.
Dim rxSensitive As New Regex("\b(?<word>\w+)\s+(\k<word>)\b", _
RegexOptions.Compiled)
' Define a test string.
Dim text As String = "The the quick brown fox fox jumps over the lazy dog dog."
' Find matches using case-insensitive regular expression.
Dim matches As MatchCollection = rxInsensitive.Matches(text)
' Report the number of matches found.
Console.WriteLine("{0} matches found in:", matches.Count)
Console.WriteLine(" {0}", text)
' Report on each match.
For Each match As Match In matches
Dim groups As GroupCollection = match.Groups
Console.WriteLine("'{0}' repeated at positions {1} and {2}", _
groups.Item("word").Value, _
groups.Item(0).Index, _
groups.Item(1).Index)
Next
Console.WriteLine()
' Find matches using case-sensitive regular expression.
matches = rxSensitive.Matches(text)
' Report the number of matches found.
Console.WriteLine("{0} matches found in:", matches.Count)
Console.WriteLine(" {0}", text)
' Report on each match.
For Each match As Match In matches
Dim groups As GroupCollection = match.Groups
Console.WriteLine("'{0}' repeated at positions {1} and {2}", _
groups.Item("word").Value, _
groups.Item(0).Index, _
groups.Item(1).Index)
Next
Console.WriteLine()
End Sub
End Module
' The example produces the following output to the console:
' 3 matches found in:
' The the quick brown fox fox jumps over the lazy dog dog.
' 'The' repeated at positions 0 and 4
' 'fox' repeated at positions 20 and 25
' 'dog' repeated at positions 50 and 54
'
' 2 matches found in:
' The the quick brown fox fox jumps over the lazy dog dog.
' 'fox' repeated at positions 20 and 25
' 'dog' repeated at positions 50 and 54
Kommentarer
Ett RegexOptions värde kan anges som en parameter till följande medlemmar i Regex klassen:
Klasskonstruktorn Regex.Regex(String, RegexOptions) .
Metoderna Regex.Replace(String, String, String, RegexOptions) och Regex.Replace(String, String, MatchEvaluator, RegexOptions) .
Ett RegexOptions värde kan också anges som en parameter till RegexCompilationInfo konstruktorn eller tilldelas direkt till RegexCompilationInfo.Options egenskapen. Det resulterande RegexCompilationInfo objektet används sedan i anropet till Regex.CompileToAssembly metoden.
Flera alternativ som tillhandahålls av RegexOptions medlemmar i uppräkningen (i synnerhet av dess ExplicitCapture, IgnoreCase, Multilineoch Singleline medlemmar) kan i stället tillhandahållas med hjälp av ett infogat alternativtecken i mönstret för reguljära uttryck. Mer information finns i Alternativ för reguljära uttryck.