c# 如何取两个符号之间的字符串? [关闭]
Posted
技术标签:
【中文标题】c# 如何取两个符号之间的字符串? [关闭]【英文标题】:How take the string between two symbols c#? [closed] 【发布时间】:2014-01-14 08:29:45 【问题描述】:在这个字符串中输出!re=.id=*2CB=name=xxname123=service=***=caller-id=
我只需要这个以*
开头的字符串,它是一个以=
符号结尾的id 常量。我使用了子字符串,但我注意到数字变为 3 和 4 位甚至更多。
我的代码不再工作了。我正在尝试制作一个仅匹配 .id=XXXX=
那些 =
符号之间的字符串的正则表达式。
【问题讨论】:
您标记了问题正则表达式,但您使用了正则表达式吗?它在哪里?你的代码是什么样的? 与其用一个大句子来描述你的代码,你为什么不直接发布呢?此外,说它“没有用”绝对不会告诉我们您遇到的问题。编译错误?运行时异常?意外行为?更具体。 【参考方案1】:我不确定这是否符合您的需要,但您可以尝试:
var myString = "!re=.id=2CB=name=xxname123=service=***=caller-id=";
var match = new Regex(@"\.id=(?<value>[^=]*)=").Match(myString);
var id = match.Groups["value"].Value;
我没有针对特定的语法对此进行测试,但这应该可以让你得到捕获的字符串。如果您需要跨多个项目执行此操作,您可以修改它以遍历 MatchCollection。
foreach(var match in new Regex(@"\.id=(?<value>[^=]*)=").Matches(myString)
var id = match.Groups["value"].Value; //Or do something else with the value
【讨论】:
谢谢我去试试。【参考方案2】:string input = " !re=.id=2CB=name=xxname123=service=***=caller-id=";
var id = Regex.Match(input, @"\.id=(.+?)=").Groups[1].Value;
【讨论】:
这有效@"\.id=(.+?)=" 但结果给了我这个例如: .id=*FFFFFFFE= 我只需要 "*FFFFFFE" 有一种方法清理它? @user3104909 不,它按预期返回*FFFFFFE
。见上面的代码。我使用 Groups[1] 的 Value 而不是 Match
是的,我测试错了谢谢!!!以上是关于c# 如何取两个符号之间的字符串? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章