如何在Regex表达式中替换实际的星号(*)?

fra*_*Xis 13 c# regex search replace

我有一个声明:

我有一个字符串,如

content = "*   test    *"
Run Code Online (Sandbox Code Playgroud)

我想搜索并替换它,所以当我完成时,字符串包含这个:

content = "(*)   test    (*)"
Run Code Online (Sandbox Code Playgroud)

我的代码是:

content = Regex.Replace(content, "*", "(*)");
Run Code Online (Sandbox Code Playgroud)

但这会导致C#中的错误,因为它认为*是正则表达式语法的一部分.

如何修改此代码,以便将字符串中的所有星号更改为(*)而不会导致运行时错误?

pol*_*nts 31

由于*是一个正则表达式元字符,当你需要它作为字符类定义之外的文字星号时,它需要转义\\*.

在C#中,您可以将其写为"\\*"@"\*".

C#还应该有一个通用的"引用"方法,以便您可以引用任意字符串并将其匹配为文字.

也可以看看


Ben*_*zun 10

你可以逃脱它:

\*


Kob*_*obi 10

在这个简单的场景中,您不需要正则表达式.您可以使用String.Replace:

content = content.Replace("*", "(*)");
Run Code Online (Sandbox Code Playgroud)


Cin*_*ine 5

使用Regex.Escape()它将获取所有字符串并将其转换为您可以用作正则表达式的一部分的内容。