如何用C#中的某些字符替换单引号的字符串

时间:2014-07-11 10:04:08

标签: c#

我需要一个代码来搜索一个字符串是否包含单引号' 在一个字符之前,并且该单引号应该用两个单引号替换' '

example-:

input = "test's"
output = "test''s"

input = "test'"
output = "test'"

input = "test' "
output = "test' "

2 个答案:

答案 0 :(得分:2)

使用positive lookahead检查下一个字符是否为单词:

string input = "test's";
var result = Regex.Replace(input, @"'(?=\w)", @"""");

此代码使用正则表达式将输入字符串中的匹配替换为双引号。要匹配的模式是'(?=\w)。它包含单引号和下一个字符的正向前瞻(字符本身不会包含在匹配中)。如果找到匹配(即输入包含单引号后跟单词字符,则引号将替换为给定的字符串(在这种情况下为双引号)。

更新:编辑和评论后,正确的替换应该是

var result = Regex.Replace(input, "'(?=[a-zA-Z])", "''");

输入:

"test's"
"test'"
"test' "
"test'42"
"Mr Jones' test isn't good - it's bad"

输出:

"test''s"
"test'"
"test' "
"test'42"
"Mr Jones' test isn''t good - it''s bad"

答案 1 :(得分:0)

试试这种方式

    String input = input.Replace("'","\"");