【问题标题】:Regex to replace every newline正则表达式替换每个换行符
【发布时间】:2013-01-10 13:28:58
【问题描述】:

我需要用另一个字符(比如“X”)替换字符串中的每个换行符。我确实希望用一个换行符折叠多个换行符!

PS:这个正则表达式用一个换行符替换所有连续的换行符,但这不是我需要的。

Regex regex_newline = new Regex("(\r\n|\r|\n)+");

【问题讨论】:

  • str = str.Replace(Environment.NewLine, "X"); 有什么问题?
  • StackOverflow 社区希望您不仅要说明您的需求,还要说明您为实现它所做的努力。
  • @Jon,我没有尝试任何东西,因为我不喜欢正则表达式。 Environment.NewLine 是否处理所有 3 种情况:'\r'、'\n' 和 '\r\n'?
  • osmiumbin 我和前妻相处得不好,所以我和她离婚了,然后继续尝试更新、更简单的东西……到目前为止,她创造了奇迹……哈哈这个故事的寓意为什么要尝试当您可以使用任何可用的内部功能时,您不明白的东西
  • 亲爱的乔恩,你误解了我的意思。我没有想出一个复杂的问题,所以你可以问我我做了什么来实现它。我要求一个可以用 10 个字符回答的特定小东西:替换每个换行符的正则表达式模式。你问我做了什么来实现它?罗弗。停止对您甚至懒得回答的问题投反对票。我对我想要的东西很精确。

标签: c# regex replace newline


【解决方案1】:

这将用一些东西替换一个或多个换行符,不一定用一个换行符 - 这是由 regex_newline.Replace(...) 调用确定的,您没有显示。

所以基本上,答案是

 Regex regex_newline = new Regex("(\r\n|\r|\n)");   // remove the '+'
 // :
 regex_newline.replace(somestring, "X");

【讨论】:

  • 有什么理由使用正则表达式而不是string.Replace 方法?
  • @DarinDimitrov:从 OP 给出的正则表达式中,我假设他想替换所有形式的换行符(Mac、Linux 或 ASCII),而你不能用简单的字符串来替换。替换()
  • 为什么不呢? string.Replace 方法可以链接几次。
  • 我从未说过要使用Environment.NewLine。我在评论中所说的是,您可以将多次调用 string.Replace 与您需要替换的确切字符链接起来以覆盖所有情况。
  • 底线我要求一个正则表达式解决方案,这就是答案。不适用于 Environment.NewLine。感谢您的回答。
【解决方案2】:

只需使用String.Replace 方法并替换字符串中的Environment.NewLine。不需要正则表达式。

http://msdn.microsoft.com/en-us/library/system.environment.newline.aspx

【讨论】:

  • 假定文本中的所有换行符格式正确,而他提供的代码假定它们不会。
猜你喜欢
  • 2014-03-10
  • 2018-07-13
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-18
相关资源
最近更新 更多