繁体   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