我有以下情况
我必须匹配类似的东西
abc#(x,-12d)
or
abc#(x,-12d, 24d) etc.
Run Code Online (Sandbox Code Playgroud)
这意味着最后一个参数是可选的.
我已经制作了正则表达式并且它可以正常工作,但由于我不知道如何制作可选项,因此我将使用两种不同的regExpression.
public static bool ValidFn(string input)
{
string regEx1 = @"^[a-zA-Z]*#\([A-Za-z0-9]+,[-|+]?\d+[dwmqy],[-|+]?\d+[dwmqy]\)";
string regEx2 = @"^[a-zA-Z]*#\([A-Za-z0-9]+,[-|+]?\d+[dwmqy]\)";
Regex r1 = new Regex(regEx1);
Regex r2 = new Regex(regEx2);
Match m1 = r1.Match(input);
Match m2 = r2.Match(input);
if (m1.Success || m2.Success) return true;
else return false;
}
Run Code Online (Sandbox Code Playgroud)
如何使regExp1成为可选项,以便我可以省去regExp2的使用.
谢谢
我有以下
string currency = string.Empty;
Regex r = new Regex(@"~(\w*[a-zA-Z0-9$£~%]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
for (Match m = r.Match(expression); m.Success; m = m.NextMatch())
{
currency = (m.Groups[1].Value);
break;
}
return currency;
Run Code Online (Sandbox Code Playgroud)
内涵是,在循环中的第一个匹配之后它应该破坏.
警告消息(无法访问的代码)发生 在循环的m = m.NextMatch().
怎么克服这个?
谢谢
我说了
var str1 = "Name1";
var str2 = "Name1";
Run Code Online (Sandbox Code Playgroud)
如果我这样做str1 == str2,输出将是真的(如预期的那样).
但我的问题是它是如何进行比较的...它是字符的特征还是如何?
那么string.Intern如何帮助改善性能呢?