如何用正则表达式截取字符串

有这么一段字符串:
[数字]字符串

结果

取  a=数字

     b=字符串


截取方法1:

     int a  = Convert.ToInt32(txt1.Text.Trim().Replace('[', ']').Split(']')[1]);
     string b = txt1.Text.Trim().Replace('[', ']').Split(']')[2];

 

截取方法2:

string str = "[数字]字符串";

Regex reg = new Regex(@"\[([^\]]+)\](.*)");
string a= Convert.ToInt32( reg.Match(str).Groups[1].Value);
string b= Convert.ToInt32( reg.Match(str).Groups[2].Value);

 


截取方法3
string tempStr = "[数字]字符串";
string pattern = @"\[([\s\S]*)\]([\s\S]*)";
Regex re = new Regex(pattern);
string str1 = Regex.Replace(tempStr,pattern,"$1");
string str2 = Regex.Replace(tempStr, pattern, "$2");
 
 
   变成数组怎么写
    /// <summary>
    /// 返回一个字符串数组
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public string[] ReturnIDAndName(string str)
    {       
        string[] stringArray = new string[2];       
        Regex reg = new Regex(@"\[([^\]]+)\](.*)");
        stringArray[0]= reg.Match(str).Groups[1].Value;
        stringArray[1] = reg.Match(str).Groups[2].Value;       
        return stringArray;
    } 

 

    /// <summary>
    /// 截取字符串编号
    /// </summary>
    public int ReturnId(string str)
    {
        try
        {
            if (string.IsNullOrEmpty(str))
            {
                return 0;
            }
            Regex regex = new Regex("(?<=\\[)\\d+(?=\\])");
            Match m = regex.Match(str);
            int pid;
            if (!m.Success)
            {
                pid = int.Parse("[" + regex.Match(str).Value + "]");
            }
            return int.Parse(regex.Match(str).Value);
        }
        catch
        {
            return 0;
        }
    }

你可能感兴趣的:(正则表达式,String,regex)