gpt4 book ai didi

c# - 匹配字符串中的变量

转载 作者:行者123 更新时间:2023-11-30 15:54:34 25 4
gpt4 key购买 nike

我想匹配字符串中的变量,这些变量使用美元符号 $ 进行寻址。但是,我的正则表达式应该匹配转义美元符号后的字符序列(例如,使用反斜杠 \$ 转义)。
如果一个反斜杠被另一个反斜杠 (\\) 转义,则当然应该匹配以下变量。

TL;DR:任何序列 $xxxxx 都应该匹配,如果它跟在偶数个反斜杠 \ (0, 2, 4, 6, ...)。反斜杠本身应该是捕获组的一部分。


我目前有以下表达式:(?:[^\\]*(\\{2})*)(\$[a-z_]\w*\b),但它不能正确处理以下文本(当然使用选项 \igm):

Hello $var, this is a backslash followed by a dollar: \\\$
$test \$escaped \\$not_escaped \\\$escaped_again \\\\$you_get_the_idea

匹配的“变量”应该是$var$test$not_escaped$you_get_the_idea
然而,https://regex101.com显示其他匹配项。


我无法理解这个错误。

最佳答案

将此正则表达式与后向断言结合使用,您可以捕获第 1 组中的变量字符串:

(?<!\\)(?:\\\\)*(\$\w+)

Demo on regex101.com

关于c# - 匹配字符串中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50074438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com