[英]if else condition in Regex c# and return constant value
string str="abc"
if(str=="abc")
return "abc";
else
return "xyz"
我们可以在 C# 正则表达式中实现这一点吗? 或者另一个条件是,如果输入字符串长度为 3,则返回“abc”,否则返回“xyz”
仅正则表达式:
string str = "abc";
长度 3:
return Regex.IsMatch(str, "^.{3}$") ? "abc" : "xyz";
“ABC”:
return Regex.IsMatch(str, "^abc$") ? "abc" : "xyz";
如果你曾经想做类似的事情
string str="abc"
if(str=="abc") // or str.Lenght == 3
return str; // return original string
else
return "xyz"
你可以只用Regex.Replace
var ifNot = "xyz";
var testStrings = new []{"abc", "abcd", "ab", "123"};
var pattern = "^abc$"; // not 3
foreach( var s in testStrings)
Console.WriteLine($"{s} => {Regex.Replace(s, pattern, ifNot)}");
pattern = "^(.{0,2}|.{4,})$"; // not 3
foreach( var s in testStrings)
Console.WriteLine($"{s} => {Regex.Replace(s, pattern, ifNot)}");
abc => xyz
abcd => abcd
ab => ab
123 => 123
abc => abc
abcd => xyz
ab => xyz
123 => 123
我能想到的最简单的:
return str.Length == 3 ? "abc" : "xyz";
或者
return str == "abc" ? "abc" : "xyz";
不需要正则表达式。
对于正则表达式,您可以使用模式: ^.{3}$
,这意味着匹配任何字符三次, ^
匹配字符串的开头, $
匹配字符串的结尾:
return Regex.Match("abc", "^.{3}$").Success ? "abc" : "xyz";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.