小编gen*_*ser的帖子

如何在C#中创建可选参数Regular Expression

我有以下情况

我必须匹配类似的东西

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的使用.

谢谢

c# regex

3
推荐指数
1
解决办法
4414
查看次数

将数字转换为字母

给定一个数字,你如何将其转换为字母?

t-sql sql-server-2005

2
推荐指数
1
解决办法
3151
查看次数

如何避免无法访问代码的警告

我有以下

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().

怎么克服这个?

谢谢

c#

2
推荐指数
1
解决办法
647
查看次数

如何在dotnet中进行字符串比较?

我说了

var str1 = "Name1"; 
var str2 = "Name1";
Run Code Online (Sandbox Code Playgroud)

如果我这样做str1 == str2,输出将是真的(如预期的那样).

但我的问题是它是如何进行比较的...它是字符的特征还是如何?

那么string.Intern如何帮助改善性能呢?

c# string

0
推荐指数
1
解决办法
430
查看次数

标签 统计

c# ×3

regex ×1

sql-server-2005 ×1

string ×1

t-sql ×1