c# 正则表达式截取字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 正则表达式截取字符串相关的知识,希望对你有一定的参考价值。

怎么能从字符串“<内容:neirong1 <操作资源:新建资源 关键操作:查询表><细节:xijie2>><进程:jinchengaaa>”
取出每个属性的值 比如 “内容”的值是"neirong1","细节"的值是"xijie2",“进程”的值是“jinchengaaa”

参考技术A 这个最好是通过字符串的截取与替换,比如:“<内容:neirong1 <操作资源:新建资源 关键操作:查询表><细节:xijie2>><进程:jinchengaaa>”
这个字符串, 你先将"<" ">"用一个符号替换,比如用“|”替换,无论是一个"<" “>” 还是连续的几个这样的字符,都只用一个“|”替换。

接着在按照“|”这个字符来分组,得到以下字符数组:
内容:neirong1
操作资源:新建资源 关键操作:查询表
细节:xijie2
进程:jinchengaaa

这样再对每个数组项进行分解,就能得到他们的名字和对应的值了。
参考技术B string str = “<内容:neirong1 <操作资源:新建资源 关键操作:查询表><细节:xijie2>><进程:jinchengaaa>”;
string a = str.Split('<')[1].Split(':')[0]; //内容
string b = str.Split('<')[1].Split(':')[1]; //neirong

string c = str.Split('<')[3].Split(':')[0]; //细节
string d = str.Split('<')[3].Split(':')[1]; //xijie

以此类推 参考 string 类 Split 成员函数
参考技术C <.+?:(.+?)>
大概是这样吧
参考技术D <内容:(?<a>.*?)[\w\W]+<细节:(?<d>.*?)>><进程:(?<e>.*?)>本回答被提问者采纳 第5个回答  2011-09-22 使用SubString方法

C#初学者:删除字符串中两个字符之间的所有字符(正则表达式?)

【中文标题】C#初学者:删除字符串中两个字符之间的所有字符(正则表达式?)【英文标题】:C# Beginner: Delete ALL between two characters in a string (Regex?) 【发布时间】:2013-12-17 06:37:59 【问题描述】:

我有一个带有 html 代码的字符串。我想删除所有 html 标签。所以 之间的所有字符。

这是我截取的代码:

WebClient wClient = new WebClient();
SourceCode = wClient.DownloadString( txtSourceURL.Text );
txtSourceCode.Text = SourceCode;
//remove here all between "<" and ">"
txtSourceCodeFormatted.Text = SourceCode;

希望有人可以帮助我

【问题讨论】:

如果 &lt;&gt; 字符出现在 cmets、脚本、字符串等中怎么办? 不,不要使用正则表达式来解析 HTML 字符串。一场真正的噩梦在等着你。这是 SO 中最受欢迎的答案之一。 ***.com/questions/1732348/… 最好的方法是使用专门的 HTML 解析器,例如 HTML Agility Pack @Steve 我最喜欢的答案:) 在这种情况下使用 .NET XML-Parser 也可能有效?还是我错了? 【参考方案1】:

试试这个:

txtSourceCodeFormatted.Text = Regex.Replace(SourceCode, "<.*?>", string.Empty);

但是,正如其他人提到的,handle with care。

【讨论】:

请注意,在极少数情况下,这可能会导致意外行为!【参考方案2】:

根据Ravi's answer,可以使用

string noHTML = Regex.Replace(inputHTML, @"<[^>]+>|&nbsp;", "").Trim();

string noHTMLNormalised = Regex.Replace(noHTML, @"\s2,", " ");

【讨论】:

以上是关于c# 正则表达式截取字符串的主要内容,如果未能解决你的问题,请参考以下文章

●c#使用正则表达式

C# 正则提取sql语句字符串里的字段名

C#正则表达式如何提取一段字符串中汉字后的数字

C# 正则表达式提取指定文本内的内容

C# 正则表达式提取指定文本内的内容

C# 正则表达式提取指定文本内的内容