【发布时间】:2021-11-29 08:53:26
【问题描述】:
程序员希望通过正则表达式得到两个变量day1和day2,字符串表达式中的所有其他变量也是以字符@开头的。
字符串表达式示例:@day1 - @day2 > 3
谢谢!
【问题讨论】:
-
@Charlieface 也许不是。将
\b放在@之前将永远不会匹配前面的空格,因为空格和@都是非单词字符。
程序员希望通过正则表达式得到两个变量day1和day2,字符串表达式中的所有其他变量也是以字符@开头的。
字符串表达式示例:@day1 - @day2 > 3
谢谢!
【问题讨论】:
\b 放在@ 之前将永远不会匹配前面的空格,因为空格和@ 都是非单词字符。
您可以在这里简单地使用正向前瞻。
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 包含匹配值。
【讨论】:
您可以使用lookbehind 来获取变量名称,如下所示:
var regex = new Regex("(?<=@)\\w+");
这将得到前面带有@符号的单词
【讨论】: