c# - 匹配字符串内的变量
问题描述
我想匹配字符串中的变量,这些变量使用美元符号来寻址$
。但是,我的正则表达式不应匹配转义的美元符号后的字符序列(例如用反斜杠转义\$
)。
如果反斜杠与另一个反斜杠 ( \\
) 一起转义,则当然应该匹配以下变量。
TL;DR:任何序列$xxxxx
都应该匹配,只要它遵循偶数个反斜杠\
(0、2、4、6,...)。反斜杠本身不应该是捕获组的一部分。
我目前有以下表达式:(?:[^\\]*(\\{2})*)(\$[a-z_]\w*\b)
,但它不能在以下文本上正常工作(当然有 options \igm
):
Hello $var, this is a backslash followed by a dollar: \\\$
$test \$escaped \\$not_escaped \\\$escaped_again \\\\$you_get_the_idea
匹配的“变量”应该是$var
、$test
和。
但是,https://regex101.com显示其他匹配项。$not_escaped
$you_get_the_idea
我无法理解这个错误。
解决方案
推荐阅读
- python - Kivy:上一个屏幕在当前(下一个)屏幕后面仍然可见
- npm - 带有 Web 组件(lit-element)导入的 pdf.js 和“pdfjsLib.getDocument 不是函数”
- jmeter - Jmeter的每次迭代中都没有更新变量值
- r - 获取非 NA 列表元素的索引和值
- python - 如何将 discord.py 中的嵌入发送到 BOT 所在的所有服务器
- python - 如何从单独的独立函数构造一个类?
- javascript - React Native 时区和格式选项
- html - 垂直减小窗口高度时,侧边栏内容位于固定标题下
- android - 在颤振中使用firebase存储模拟器给我操作系统错误:连接被拒绝,errno = 111,地址=本地主机,端口= 39280
- reactjs - 我无法理解反应挂钩的部门?