如何使用正则表达式在字符串表达式中查找以@开头的变量名?

Posted

技术标签:

【中文标题】如何使用正则表达式在字符串表达式中查找以@开头的变量名?【英文标题】: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 放在@ 之前将永远不会匹配前面的空格,因为空格和@ 都是非单词字符。 【参考方案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+");

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

【讨论】:

以上是关于如何使用正则表达式在字符串表达式中查找以@开头的变量名?的主要内容,如果未能解决你的问题,请参考以下文章

检查字符串是不是以正则表达式数字开头

正则表达式:数字开头中间字母结尾数字

防止在正则表达式上回溯以查找非注释行(不以缩进的“#”开头)

shell脚本应用正则表达式grep,sed,awk,的应用

shell脚本应用正则表达式grep,sed,awk,的应用

database 如何查询某个字段以某个字母开头的数据