我有一个带单引号的文本字符串,我想使用正则表达式删除单引号前后的括号。谁能建议我谢谢你。
例如,
我有(name equal '('John')')
我期望的结果是name equal '('John')'
答案 0 :(得分:1)
//使用正则表达式
string input = "(name equal '('John')')";
Regex rx = new Regex(@"^\((.*?)\)$");
Console.WriteLine(rx.Match(input).Groups[1].Value);
//使用子字符串方法
String input= "(name equal '('John')')";
var result = input.Substring (1, input.Length-2);
Console.WriteLine(result);
结果:
name equal '('John')'
答案 1 :(得分:0)
尝试一下:
var replaced = Regex.Replace("(name equal '('John')')", @"\((.+?'\)')\)", "${1}");
Regex
类位于System.Text.RegularExpressions
命名空间中。
答案 2 :(得分:0)
在(?<! )
之后使用消极眼神,在(?! )
之前使用消极眼神,如果遇到'
,则将停止比赛,例如
(?<!')\(|\)(?!')
该示例将其解释为注释:
string pattern =
@"
(?<!')\( # Match an open paren that does not have a tick behind it
| # or
\)(?!') # Match a closed paren tha does not have tick after it
";
var text = "(name equal '('John')')";
// Ignore Pattern whitespace allows us to comment the pattern ONLY, does not affect processing.
var final = Regex.Replace(text, pattern, string.Empty, RegexOptions.IgnorePatternWhitespace);
结果
名称等于'('John')'