c#如何取出指定的中间文本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
///<summary>
       ///取出文本中间内容
       ///<summary>
       ///<param name="left">左边文本</param>
       ///<param name="right">右边文本</param>
       ///<param name="text">全文本</param>
       ///<return>完事返回成功文本|没有找到返回空</return>
       public static string TextGainCenter(string left, string right, string text) {
           //判断是否为null或者是empty
           if (string.IsNullOrEmpty(left))
           return "";
           if (string.IsNullOrEmpty(right))
           return "";
           if (string.IsNullOrEmpty(text))
           return "";
           //判断是否为null或者是empty
 
           int Lindex = text.IndexOf(left); //搜索left的位置
            
           if (Lindex == -1){ //判断是否找到left
               return "";
           }
            
           Lindex = Lindex + left.Length; //取出left右边文本起始位置
            
           int Rindex = text.IndexOf(right, Lindex);//从left的右边开始寻找right
           
            if (Rindex == -1){//判断是否找到right
                return "";   
           }
            
               return text.Substring(Lindex, Rindex - Lindex);//返回查找到的文本
       }

 

例子:

left(string):指定的左边文本   例:前

right(string):指定的右边文本 例:左

text(string):欲查找的全部文本 例:前后左右

TextGainCenter("前","左","前后左右");

结果:"右"

解释:

用到的方法

IndexOf(left)

这个是用来获取left也就是"前"在text(前后左右)中的位置 用Lindex表示

Lindex = Lindex + left.length 

获取的位置是在left开始的位置 例: 获取的位置 (|前后左右) “|”为输入时的光标

用获取的位置加上left的长度就是left右边第一个字符的起始位置 例: 获取的位置 (前|后左右) “|”为输入时的光标

IndexOf(right,Lindex)

这个用来获取在left右边的right在text中的位置 用Rindex表示

{

   因为这是取的left和right中间的内容,如果left左边有字符与right相同的话,Rindex会返回left左边那个字符的位置

}

Substring(开始截取的位置,截取的字符串长度)

text.Substring(Lindex,Rindex-Lindex)

Rindex - Lindex = left与right中间字符串的长度

所以用这个方法返回的结果为:后

posted @   Homegu  阅读(1268)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
你的浏览器不支持canvasr
点击右上角即可分享
微信分享提示