[C.C++] C#之字符串截取--Regex.Match使用

1658 0
王子 2023-5-12 08:48:00 | 显示全部楼层 |阅读模式
目录

    C#字符串截取--Regex.MatchC#的字符串截取,长度未定时总结


C#字符串截取--Regex.Match

C#字符串截取–Regex.Match Regex.Match方法:在输入字符串中搜索匹配正则表达式模式的子字符串,并将第一个匹配项作为单个Match对象返回。
Regex.Match
方法的重载方法有六种类型,也都差不多,下面就主要给大家讲讲怎么用Regex.Match方法实现我们需要的功能:
public Match Match(string input):
在指定的输入字符串中搜索 Regex 构造函数中指定的正则表达式的第一个匹配项;参数:要搜索匹配项的字符串;返回结果:一个包含有关匹配的信息的Match对象。
Match对象:表示单个正则表达式匹配的结果。
其中Match对象的Groups属性为:获取由正则表达式匹配的组的集合。
如果我们要用Regex.Match方法,首先我们要添加using System.Text.RegularExpressions;这个引用。
static void Main(string[] args)
        {
            string s1 = "所属机构名称/教师姓名/课程类型/课程名称";
            //定义一个能够将我们需要的东西截取出来的正则表达式
            Regex regex = new Regex(@"(.*)/(.*)/(.*)/(.*)", RegexOptions.IgnoreCase);
            //显示每一个满足正则表达式的子字符串
            foreach (var i in regex.Match(s1).Groups)
            {
                Console.WriteLine(i);
            }
        }



C#的字符串截取,长度未定时

设:
str="前字符串=后字符串";
"needstr"作为我们需要的内容;
注意所选取的字符未定长度的时候选用!
字符串指定两边字符,取中间字符
//我们希望得到的字符串“=”;
needstr = new Regex("(?<=(" + "前字符串" + "))[.\\s\\S]*?(?=(" + 后字符串 + "))", RegexOptions.Multiline | RegexOptions.Singleline).Match(str).Value;字符串指定最后一个分割字符,取前面字符
//得到“前字符串”
needstr= TargetString.Substring(0,TargetString.LastIndexOf("指定字符串"));字符串指定最后一个分割字符,取后面字符(已知长度)
//得到“后”
needstr= TargetString.Substring(TargetString.LastIndexOf("指定字符串")+1,1);字符串指定最后一个分割字符,取后面字符(未知长度,也就是后面全部)
//得到“后字符串”
//获取所需截取的前面总长度
int index=str.LastIndexOf("=");
//从该字符后开始,一直到结束的长度为总长-前字符长度-1
needstr= str.Substring(index+1,str.Length-index-1);------------------补充--------------------
去掉最后一个字符
s=s.Substring(0,s.Length-1);
总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持中国红客联盟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行