c# 包含单词异常编号

标签 c# string

我需要搜索一个字符串,看看它是否包含 "<addnum(x)>"

我已经在我搜索的其他词上使用了 .contains,我能想到的最简单的方法是您可以以某种方式对数字进行异常(exception)处理,或者您是否需要为此使用其他代码?

到目前为止我的代码。

public List<string> arguments = new List<string>();

    public void Custom_naming(string name_code)
    {
        arguments.Add("Changing the name to " + name_code); // Sets the new name.

        if( name_code.Contains("<addnum>") ) 
        {
            Add_number();
        }

        if (name_code.Contains("<addnum(x)>"))
        {// X = any number.
        }
    }
    private void Add_number() 
    {
        arguments.Add("Replaces all <addnum> with a number");
    }

    private void Add_number(int zeros) 
    {
        arguments.Add("Replaces all <addnumxx> with a number with lentgh of");
    }

最佳答案

您可能需要使用正则表达式:

var match = Regex.Match(name_code, @"<addnum(?:\((\d+)\))?>");
if (match.Success)
{
    int zeros;
    if (int.TryParse(match.Groups[1].Value, out zeros))
    {
        Add_number(zeros);
    }
    else
    {
        Add_number();
    }
}

这将返回调用适当的 Add_number方法如果 name_code包含 <addnum>或类似 <addnum(123)> 的东西.

如果 name_code 中可能有不止一个这样的,例如<addnum(1)><addnum(2)> ,您需要使用循环来分析每个匹配项,如下所示:

var matches = Regex.Matches(name_code, @"<addnum(?:\((\d+)\))?>");
foreach(var match in matches)
{
    int zeros;
    if (int.TryParse(match.Groups[1].Value, out zeros))
    {
        Add_number(zeros);
    }
    else
    {
        Add_number();
    }
}

关于c# 包含单词异常编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17772358/

相关文章:

c# - SQL Server 的连接字符串(本地数据库)

php - 如何在 php 中将 javascript 函数写为字符串?

C++ 将字符串(带空格)显示为二维数组?

c# - c# 根据用户输入选择mysql数据库

c# - 对于多/表单数据回发,浏览器如何确定哪些控件是 "successful"?

c# Linq 对象子查询/输入

java - 如何使用 java String.replaceAll(string regex,string replacement) 来得到我想要的?

python - 只保留字符串中的字母字符(多语言)

javascript - 将字符串拆分为单词数组以查找最长的

c# - 创建接口(interface)时的差异