【发布时间】:2021-06-21 08:48:19
【问题描述】:
我正在尝试编写一个表达式,该表达式将与 json 文件一起用于 vscode 扩展。我的表达式应该以"=\s*" 开头,然后我希望它选择等于之后的所有内容,但以下情况除外:
-
TRUE或FALSE相等后 - 以数字开头
- 以'或"开头
我尝试了很多事情,并且分别尝试了每个案例,但当我尝试将它们放在一起时,它不起作用
文档字符串示例:
abc = 测试
abc = 真
abc = 错误
abc = "测试"
abc = '测试'
abc = 123
在这些示例中,我的正则表达式应该只保留第一个,“测试”可以是任何东西。
最接近解决方案的是/(=\s*)^(((?!TRUE|FALSE|[0-9]|\"|\').)*)$/gm
【问题讨论】:
-
请在问题中添加您尝试过的内容。 “加入”模式的确切问题是什么?你有任何测试用例/文本吗?也请在此处添加并说明预期行为。
-
也许甚至添加测试用例,例如“abc”应该匹配但“abd”不应该匹配
-
也许您只是想阅读dotenv 之类的文件,您可能应该选择already existing solution。
-
抱歉,您要匹配整行还是只匹配
=和空格?如果后者使用=(?!\s*(?:TRUE|FALSE|[0-9"']))\s*,否则使用.*=(?!\s*(?:TRUE|FALSE|[0-9"'])).* -
听起来您打算使用正则表达式解析 JSON。如果是这样,它就不是要使用的工具,而且当你得到的 JSON 看起来与你期望的不完全一样时,你会遇到问题。
标签: json regex vscode-extensions