如何使用正则表达式在字符串表达式中查找以@开头的变量名?
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,的应用