C#去掉字符串中的<a></a>
时间: 2023-09-01 14:11:53 浏览: 82
可以使用正则表达式来去掉字符串中的`<a></a>`标签,示例代码如下:
```c#
using System.Text.RegularExpressions;
string str = "<a href='https://www.csdn.net'>CSDN</a>是一个专业开发者社区";
string pattern = @"<a\b[^>]*>(.*?)</a>";
string result = Regex.Replace(str, pattern, "$1");
Console.WriteLine(result); // 输出:CSDN是一个专业开发者社区
```
解释一下代码:
首先定义一个输入字符串`str`,其中包含`<a></a>`标签,还有一些其他的文本。接着定义一个正则表达式`pattern`,用来匹配`<a></a>`标签,其中`<a\b[^>]*>`表示匹配`<a>`标签,`[^>]*`表示匹配除了`>`之外的任意字符,`(.*?)`表示匹配标签中的文本内容(非贪婪模式),最后的`</a>`表示匹配`</a>`标签。
然后使用`Regex.Replace`方法将匹配到的标签替换成文本内容,通过`$1`引用匹配结果中的第一个分组,即标签中的文本内容。最后输出替换后的字符串。
相关问题
C#list<string> 去重
在C#中,List<T>是一个动态数组,用于存储同一种类型的元素。如果你有一个包含字符串的List<string>并想要去重,你可以使用多种方法:
1. **LINQ (Language Integrated Query)**:
使用 LINQ 的 Distinct() 方法,它可以按默认方式去除重复项:
```csharp
List<string> uniqueStrings = originalList.Distinct().ToList();
```
2. **自定义HashSet**:
利用 HashSet 的特性(不允许重复元素),可以先转换到 HashSet 再转回 List:
```csharp
HashSet<string> uniqueSet = new HashSet<string>(originalList);
List<string> uniqueStrings = uniqueSet.ToList();
```
3. **foreach 循环**:
如果你想遍历列表,逐个检查并添加唯一项:
```csharp
List<string> uniqueStrings = new List<string>();
foreach(string item in originalList)
{
if(!uniqueStrings.Contains(item))
{
uniqueStrings.Add(item);
}
}
```
C#中 一个字符串 按逗号分隔并去掉前后空格,并 存为 HashSet<string>
在C#中,你可以使用`StringSplitOptions.RemoveEmptyEntries`选项配合`Split()`方法将字符串按照逗号分隔,然后去除前后多余的空格。接着,将结果转换为`HashSet<string>`以避免重复元素。以下是步骤:
```csharp
string input = " value1, value2, ,value3, another value, empty,"; // 输入字符串
string[] splitValues = input.Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); // 分割并去空白
HashSet<string> resultSet = new HashSet<string>(splitValues); // 转换为HashSet
```
在这个例子中,`Trim()`函数用于移除输入字符串开头和结尾的空格。`Split()`方法会根据逗号分割字符串,而`StringSplitOptions.RemoveEmptyEntries`则会忽略返回数组中的所有空项。
现在,`resultSet`就是你想要的结果,它包含了没有重复值的、按逗号分隔后的字符串集合。
阅读全文