Stöd för reguljära uttryck i System Center Operations Manager
När du skapar hanteringspaket kan du behöva inkludera matchning av reguljära uttryck i identifieringar och grupper. Reguljära uttryck kan också vara nödvändiga för mönstermatchning i uttrycksvillkor i övervakare och regler.
Ursprunglig produktversion: System Center Operations Manager
Ursprungligt KB-nummer: 2702651
Operations Manager stöder två olika typer av reguljära uttryck. Du måste veta vilket element du arbetar i för att kunna välja rätt uttryck. Beräknings- och uttrycksfilter för gruppmedlemskap använder distinkt olika syntaxer för mönstermatchning.
Gruppberäkning
Gruppberäkning använder PERL
syntax för reguljära uttryck. Som standard är matchningen skiftlägeskänslig, men du kan ange att ett uttryck måste vara skiftlägeskänsligt med hjälp av ett särskilt attribut i XML-koden. Mer information finns i SimpleCriteriaType.
Gruppberäkning hittas i hanteringspaketet (MP) när du använder modulen Group Calc
. Uttrycket GroupCalc
använder operatorn MatchesRegularExpression
för att skapa dynamiskt gruppmedlemskap baserat på mönstermatchningsuttryck. Implementeringen av den här operatorn skickar uttrycket som finns i MP XML till SQL-anropsnamnet dbo.fn_MatchesRegularExpression
. Om det här anropet returnerar värdet 0 är matchningen false. Om den returnerar värdet 1 är matchningen sann.
Viktigt
SJÄLVA SQL-anropsnamnet dbo.fn_MatchesRegularExpression
är skiftlägeskänsligt, så operatorn MatchesRegularExpression
som används i kriterier för dynamiskt gruppmedlemskap är också skiftlägeskänslig.
GroupCalc stöder också två särskilda underelement som gör abstrakta uttryck för följande vanliga regex-stilfrågor.
Specialfunktioner för GroupCalc
GroupCalc-underelement | MP-uttryck | Regex-motsvarighet |
---|---|---|
ContainsSubstring | ^*{O}.*$ (Där {O} ersätts av delsträngen) |
|
MatchesWildcard | ? |
. |
MatchesWildcard | * |
.* |
MatchesWildcard | # |
[0-9] |
Obs!
Om någon av dessa två särskilda operatorer används är utvärderingen alltid skiftlägeskänslig.
Matchningsvillkor för uttrycksfilter
Uttrycksfilter som används i hanteringspaket använder .NET Framework regex-uttryckssyntax. Alla uttryck fungerar inte. Följande .NET Framework syntaxelement för reguljära uttryck stöds dock. Uttrycksfilter finns i hanteringspaketet när du använder expression Eval-modulen.
Operations Manager regex-syntax
Konstruera | Operations Manager regex |
---|---|
Alla tecken | . |
Tecken i intervall | [ ] |
Tecken som inte finns i intervallet | [^ ] |
Början av raden | ^ |
Radslut | $ |
Eller | | |
Grupp | ( ) |
0 eller 1 matchning | ? |
0 eller fler matchningar | * |
1 eller fler matchningar | + |
Exakt N-matchningar | {n} |
Minst N matchningar | {n, } |
Högst N matchningar | { , n} |
N till M-matchningar | {n, m} |
Nytt linjetecken | \n |
Tabbtecken | \T |
Exempel på reguljära operations Manager-uttryck (regex)
Exempel 1
Sök efter matchningar som innehåller en enda sträng, string1
:
^(string1)$
Exempel 2
Sök efter matchningar som innehåller någon av de två strängarna, string1
eller string2
:
^(string1)|^(string2)$
Exempel 3
Sök efter matchningar till mappar som finns rekursivt under de två mappsökvägarna, (/var/lib/string1/*
eller /var/lib/string2/*
):
^(\/var\/lib\/string1\/.*)|^(\/var\/lib\/string2\/.*)$
Exempel 4
Sök efter matchningar som innehåller någon av de två strängarna eller Agent1.contoso.com
Agent2.contoso.com
(skiftlägesokänslig):
^(?i)(agent1.contoso.com)|(?i)(agent2.contoso.com)$
Sök efter matchningar som innehåller Agent
(skiftlägesokänsliga):
^(?i)(agent.*)$
Reguljära uttryck via SDK
Operations Manager SDK har operatorn Matchningsvillkor för filtrering av objekt. Den här operatorn använder samma funktioner som i GroupCalc-fallet som MatchesCriteria
nämndes tidigare.
När du använder SDK för att skapa ett villkorsuttryck för att hitta objekt i Operations Manager-databasen är följande syntaxelement giltiga och användbara:
- Jämförelseoperatorer
- Jokertecken
- DateTime-värden
- Jämförelse av heltal till XML-uppräkning
Jämförelseoperatorer
Du kan använda jämförelseoperatorer när du skapar ett villkorsuttryck. Giltiga operatorer beskrivs i följande tabell.
SDK-jämförelseoperatorer
Operatör | Beskrivning | Exempel |
---|---|---|
=, == | Utvärderas till sant om de vänstra och högra operanderna är lika. | Name = 'mymachine.contoso.com' |
!=, <> | Utvärderas till sant om de vänstra och högra operanderna är ojämlika. | Name != 'mymachine.contoso.com' |
> | Utvärderas till sant om den vänstra operanden är större än den högra operanden. | Severity > 0 |
< | Utvärderas till sant om den vänstra operanden är mindre än den högra operanden. | Severity < 2 |
>= | Utvärderas till sant om den vänstra operanden är större än eller lika med den högra operanden. | Severity >= 1 |
<= | Utvärderas till sant om den vänstra operanden är mindre än eller lika med den högra operanden. | Severity <= 3 |
LIKE | Utvärderas till sant om den vänstra operanden matchar det mönster som definieras av den högra operanden. Använd tecknen i jokerteckentabellen för att definiera mönstret. | Name 'LIKE SQL%' Utvärderas till sant om värdet Name är SQLEngine. Name LIKE '%SQL%' Utvärderas till sant om Name värdet är MySQLEngine. |
MATCHER | Utvärderas till sant om den vänstra operanden matchar det reguljära uttrycket som definieras av den högra operanden. | Name MATCHES 'SQL*05' Utvärderas till sant om värdet Name är SQL2005. |
ÄR NULL | Utvärderas till sant om värdet för den vänstra operanden är null. | ConnectorId IS NULL Utvärderas till sant om ConnectorId egenskapen inte innehåller något värde. |
ÄR INTE NULL | Utvärderas till sant om värdet för den vänstra operanden inte är null. | ConnectorId IS NOT NULL Utvärderas till sant om ConnectorId egenskapen innehåller ett värde. |
I | Utvärderas till sant om värdet för den vänstra operanden finns i listan över värden som definieras av den högra operanden. ObserveraIN-operatorn är endast giltig för användning med egenskaper av typen Guid. |
Id IN ('080F192C-52D2-423D-8953-B3EC8C3CD001', '080F192C-53B2-403D-8753-B3EC8C3CD002') Utvärderas till sant om värdet för Id egenskapen är en av de två globalt unika identifierare som anges i uttrycket. |
och | Utvärderas till sant om båda operanderna till vänster och höger är sanna. | Name = 'SQL%' AND Description LIKE 'MyData%' |
ELLER | Utvärderas till sant om antingen den vänstra eller högra operanden är sann. | Name = 'SQL%' OR Description LIKE 'MyData%' |
INTE | Utvärderas till sant om rätt operande inte är sann. | NOT (Name = 'IIS' OR Name = 'SQL') |
Jokertecken
I följande tabell definieras jokertecken som du kan använda för att skapa ett mönster när du använder operatorn LIKE
.
Jokerteckenoperatorer som används med LIKE-operatorn
Jokertecken | Beskrivning | Exempel |
---|---|---|
% | Ett jokertecken som matchar valfritt antal tecken. | Name LIKE 'SQL%' Utvärderas till sant om värdet Name är SQLEngine. Name LIKE '%SQL%' Utvärderas till sant om Name värdet är MySQLEngine. |
_ | Ett jokertecken som matchar ett enda tecken. | Name LIKE 'SQL200_' Utvärderas till sant för följande Name värden:SQL2000 SQL2005 Obs! Uttrycket utvärderas som falskt för SQL200 eftersom symbolen _ måste matcha exakt ett tecken i Name värdet. |
[] | Ett jokertecken som matchar ett tecken som omges av teckenuppsättningen. Observera Hakparenteser används också när du kvalificerar referenser till MonitoringObject-egenskaper . Mer information finns i Definiera frågor för övervakningsobjekt. |
Name LIKE 'SQL200[05]' Utvärderas till sant för följande Name värden:SQL2000 SQL2005 Uttrycket utvärderas till false för SQL2003. |
[^] | Ett jokertecken som matchar ett tecken som inte omges av teckenuppsättningen. | Name LIKE 'SQL200[^05]' Utvärderas till sant för SQL2003. Uttrycket utvärderas till false för SQL2000 och SQL2005. |
DateTime-jämförelser
När du använder ett DateTime-värde i ett frågeuttryck använder du det allmänna DateTime-formatet (G) för att konvertera DateTime
värdet till ett strängvärde. Till exempel:
string qStr = "TimeCreated <= '" + myInstant.ToString("G") + "'";
ManagementPackCriteria mpCriteria = new ManagementPackCriteria(qStr);
Konvertera alla datumvärden till G-format (GMT) för att göra giltiga strängjämförelser.
Jämförelse av heltalsvärde med uppräkningar
När du använder ett heltalsuppräkningsvärde i ett frågeuttryck omvandlar du uppräkningsvärdet till ett heltal.
Till exempel:
string qStr = "Severity > " + (int)ManagementPackAlertSeverity.Warning;
MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(qStr);
Mer information
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för