【问题标题】:Regex.Replace - Replace string between two characters in a multi-line scenarioRegex.Replace - 在多行场景中替换两个字符之间的字符串
【发布时间】:2015-10-25 23:25:43
【问题描述】:

使用 Regex.Replace 和 C#,我试图替换两个分隔符之间的所有字符,但是在多行场景中,我只在一行中努力做到这一点。

我的正则表达式:

\<(.*?)\>

我的数据:

<
★ Gut Knife | Marble Fade (Factory New) - 40k
Shadow Case Key - 1k
AWP | Asiimov (Battle-Scarred) - 8k
AWP | Hyper Beast (Well-Worn) - 9k
StatTrak™ AWP | Redline (Minimal Wear) - 21k
Five-SeveN | Monkey Business (Field-Tested) - 1k
>

现在我知道您可以使用 \s 来表示您希望正则表达式匹配换行符,但是我尝试使用上述正则表达式的任何组合都不起作用。

任何帮助表示赞赏。

【问题讨论】:

  • &lt;[^&lt;&gt;]*&gt; ........
  • 发布为答案错误标记它正确。谢谢!

标签: c# regex replace


【解决方案1】:

否定字符类 [^&lt;&gt;] 也将匹配换行符,因为除非您指定 dotall 修饰符 (?s),否则点不会匹配

@"<[^<>]*>"

@"(?s)<.*?>"

Regex.Replace 中使用上述正则表达式,然后将匹配项替换为空字符串。

【讨论】:

  • 那么在两个分隔符之间找到所有内容的最简单方法是使用一个否定字符类,其中实际包含分隔符?我明白了,这是一个很大的帮助,谢谢!
  • 有时你会看到一张有趣的脸,但它只是一个正则表达式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 2011-04-22
  • 2021-05-19
  • 1970-01-01
相关资源
最近更新 更多