【问题标题】:Regex: the "replace" pattern正则表达式:“替换”模式
【发布时间】:2013-11-23 08:19:06
【问题描述】:

我有一个想要操作的字符串。问题是替换还包含正则表达式。

var result = Regex.Replace("Abc", "\r\nAbc\r\n", "\r\n"); 
// or something like that, it can be also \t and so on...

但是结果不是换行符,而是字符串“\r\n”。

PS:顺便说一句,如果我想用什么来代替什么,作为一个非常简单的例子:

Regex.Replace("abc", "abc", "")

正则表达式似乎失败了。字符串不能用空字符串代替吗?

【问题讨论】:

  • \r\n 是在某些操作系统上使用的换行符(return + newline)。
  • 如果你想用空字符串替换一个字符串,只需使用String.Replace()string result = "abc".Replace("abc", "");
  • 请看下面我的回答@Crud

标签: c# regex str-replace


【解决方案1】:

你可以像下面这样使用而不是使用正则表达式。

string result = "abc".Replace("abc", string.empty);

【讨论】:

  • 是的,我知道,但是输入的文本非常非常长,而且我有很多问题。所以我不能在这里列出每个复杂的问题。他们只是很简单的落在这里,只是作为一个例子
【解决方案2】:

试试这个:

var result = Regex.Replace("Abc", "\r\nAbc\r\n", System.Environment.NewLine);

【讨论】:

  • 我认为不存在特定于操作系统的问题。我不知道其他选项,我可以将替换字符串指定为正则表达式
【解决方案3】:

尝试在您的正则表达式之前添加字符串文字 @ 标识符。

var result = Regex.Replace("Abc", @"\r\nAbc\r\n", "\r\n"); 

我猜它们在进入正则表达式引擎之前被作为转义字符读入。

基本上,传入的模式是这样的:

"
Abc
"

在此:

"\r\nAbc\r\n"

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    相关资源
    最近更新 更多