我正在使用StreamReader读取HTML文件。 我想删除以@*开头并以*@结尾的字符串的一部分。 可能有多次出现,我想全部删除。

#1楼 票数:1

使用如下正则表达式:

string input; // string containing data to be replaced
Regex regex = new Regex("[@][*].*?[*][@]", RegexOptions.Multiline);
string replaced = regex.Replace(input, string.Empty);

这将查找以@*开头和以*@结尾的所有字符串,并将它们替换为空字符串,从而有效地将其删除。

请注意,这要求将整个文件作为字符串加载。 更好的解决方案可能是创建一个简单的状态机,该状态机读取流并将其复制到另一个流中,直到找到字符串@* ,然后停止复制到另一个字符串,直到找到*@

#2楼 票数:1 已采纳

akton regex的更新:

Regex regex = new Regex(@"@\*(?:[^*]+|\*[^@])*\*@");

如果我们使用"[@][*].*[*][@]"则next将无法正常工作

"@* That was 2 *@  THIS WILL BE DELETED TOO!  @* 2. *@"

作为奖励(?: ) :)用于删除内部落后点。

#3楼 票数:1

用空字符串替换@\\*.*?\\*@所有匹配项。

str = Regex.Replace(str, @"@\*.*?\*@", "", RegexOptions.Singleline);

  ask by Divesh Salian translate from so

未解决问题?本站智能推荐:

3回复

C#删除字符串“ Color [ColorName]”中的字符串部分“ Color []”

标题基本上将所有内容进行了总结,但是为了解释:我有一个包含“ Color [(Color name here)]”的字符串,并且我想摆脱“ Color []”,所以我留下了(color在此处命名)部分,删除此内容的最佳方法是什么? 我该怎么做?
3回复

从C#中的字符串中删除注释块

如何删除字符串中的注释块。 这是我要移除的字符串的一部分。
4回复

从C#中的字符串中删除前缀模式

我必须处理一些可以包含某些前缀的文件/文件夹。 例如,文件名可以是 1.2.0 MyDocfile.doc 1.1.2.3 Anotherfile.txt 我希望能够删除前缀和之后的空格(1.2.0、1.1.2.3),而仅使用实际的文件名。 做这个的最好方式是什么 ?
3回复

在C#中从双精度删除字符串

我正在将数据从arduino发送到C#,并且有问题。 我从serialread获取的值的末尾带有“ \\ r”,例如:“ 19.42 \\ r”。 我找到了一种使用正则表达式删除号码后的字符的解决方案。 但这也使我的double成为整数。 “ 19.42 \\ r”变为“ 1942”。
2回复

从字符串C#中删除动态子字符串

我目前正在实施一个系统,遇到以下问题。 我们正在打电话给第三方供应商,该供应商提供的字符串不是JSON格式,因此,我们试图从字符串中删除内容,以构建JSON字符串并将其序列化为我们自己的对象。 我们正在尝试从{"imgCount to ]",删除该部分(正好在“ images”之前:
2回复

C#当部分字符串中有匹配结果时选择部分字符串[重复]

这个问题已经在这里有了答案: 从.NET中的字符串获取url参数 13答案 我有一个基本上看起来像这样的字符串: 这里的窍门是字符串的长度可以变化并且会改变...但是带有“ value_id = something”的部分始终保持不变...因此我遇到的问题是
2回复

C#提取以特定字母开头的部分字符串

我有一个从HTML文档中提取的字符串,如下所示: HREF属性包含字符串的这一部分: 我正在尝试提取B002755TC0值,但是这里的问题是字符串的长度会有所不同,我不能简单地使用C#提供的Substring方法来提取该值... 取而代之的是,我在考虑是否有一种聪明的方法,
2回复

从字符串C#中捕获字符串

我需要格式化用户输入的一些文本。 例如: string str = "{{Lorem Ipsum|bold}}"只是印刷和排版行业的伪文本。 我已经使用IndexOf从字符串中提取了Lorem Ipsum,并以粗体显示。 但是如果我有两个单词要在同一字符串中设置格式,则会面临问题。