簡體   English   中英

正則表達式匹配字符串agasint模式

[英]regex match string agasint a pattern

我是新來的正則表達式。

我想存檔的是檢查字符串文本是否與以下模式匹配。

"xxx(name="yyy", country="yyy")"

編輯: xxx可以是字母或任何長度的數字,但必須以字母開頭。 yyy可以是任何長度的字符。 “,”和“ country”之間可以有零個或任意數量的空格。

例如,以下是有效的字符串

"TargetVal(name="White House", country="US")"

以下字符串無效

"TargetVal(name="White House", country="US")+546+!!!"
"343TargetVal(name="White House", country="US")"
"!TargetVal(name="White House", country="US")"
"CenterVal(name="Green House",789808 country="US")"
"CenterVal(name="Green House", country="US", dfjl)"
"OuterVal(name=Green House, country="US")"

到目前為止,這是我在C#中所做的

var formula = @"TargetVal(name=""White House"", country=""US"")";
var pattern = @"\w\(name=""\w"",\sccy=""\w""\)";
ismatching= Regex.IsMatch(formula, pattern, RegexOptions.IgnoreCase);

顯然,它並不符合所有指定規則。 有人可以給些提示嗎?

try var pattern = "^[a-zA-Z][a-zA-Z0-9 ]+\\\\(name=\\"[a-zA-Z][a-zA-Z0-9 ]+\\",\\\\s*country=\\"[a-zA-Z][a-zA-Z0-9 ]+\\"\\\\)$";

我假設您的xxx不僅不存在字母和數字,而且可以包含空格(如White House確實包含空格)。

您可以使用以下正則表達式。

var rgx = new Regex(@"(?i)^[a-z][a-z0-9]+\(name="".*?"",\s*country="".*?""\)$");

觀看演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM