【问题标题】:How to use regex to find variable name beginning with @ in a string expression?如何使用正则表达式在字符串表达式中查找以@开头的变量名?
【发布时间】:2021-11-29 08:53:26
【问题描述】:

程序员希望通过正则表达式得到两个变量day1和day2,字符串表达式中的所有其他变量也是以字符@开头的。

字符串表达式示例:@day1 - @day2 > 3

谢谢!

【问题讨论】:

  • @Charlieface 也许不是。将\b 放在@ 之前将永远不会匹配前面的空格,因为空格和@ 都是非单词字符。

标签: c# regex


【解决方案1】:

您可以在这里简单地使用正向前瞻。

string = "@day1 - @day2 > 3";
Regex regex = new Regex("(?<=@)\\w+", RegexOptions.Compiled);
var match = regex.Matches(a);
foreach( var val in match )
{
   Console.WriteLine(val);
}

val 包含匹配值。

【讨论】:

    【解决方案2】:

    您可以使用lookbehind 来获取变量名称,如下所示:

    var regex = new Regex("(?<=@)\\w+");
    

    这将得到前面带有@符号的单词

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 2016-07-04
      • 2019-01-17
      • 1970-01-01
      相关资源
      最近更新 更多