我需要一个代码来搜索一个字符串是否包含单引号' 在一个字符之前,并且该单引号应该用两个单引号替换' '
example-:
input = "test's"
output = "test''s"
input = "test'"
output = "test'"
input = "test' "
output = "test' "
答案 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("'","\"");