c# 正则表达式截取字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 正则表达式截取字符串相关的知识,希望对你有一定的参考价值。
怎么能从字符串“<内容:neirong1 <操作资源:新建资源 关键操作:查询表><细节:xijie2>><进程:jinchengaaa>”
取出每个属性的值 比如 “内容”的值是"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;
希望有人可以帮助我
【问题讨论】:
如果<
和 >
字符出现在 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, @"<[^>]+>| ", "").Trim();
或
string noHTMLNormalised = Regex.Replace(noHTML, @"\s2,", " ");
【讨论】:
以上是关于c# 正则表达式截取字符串的主要内容,如果未能解决你的问题,请参考以下文章