为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用正则表达式删除单引号之前和之后的特定字符

如何使用正则表达式删除单引号之前和之后的特定字符

C#
牧羊人nacy 2022-08-20 15:53:22
我有一个带有单引号的文本字符串,我想使用正则表达式删除该单引号之前和之后的括号。任何人都可以建议我谢谢你。例如,我期望的结果是(name equal '('John')')name equal '('John')'
查看完整描述

3 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

使用正则表达式


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')'


查看完整回答
反对 回复 2022-08-20
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

使用消极的后视和消极的向前看,如果它遇到,这将停止匹配,例如(?<! )(?! )'


(?<!')\(|\)(?!')

该示例将其解释为注释:


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);

结果


名称等于“(”约翰“)”


查看完整回答
反对 回复 2022-08-20
?
繁星coding

TA贡献1797条经验 获得超4个赞

试试这个:

var replaced = Regex.Replace("(name equal '('John')')", @"\((.+?'\)')\)", "${1}");

该类位于命名空间中。RegexSystem.Text.RegularExpressions


查看完整回答
反对 回复 2022-08-20
  • 3 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信