javascript - 正则表达式匹配变量赋值 ("a=12") 但忽略函数赋值 ("f(x)=x^2")

标签 javascript regex

我在正则表达式方面做得越来越好,但遇到这样的问题时遇到了困难:

我正在使用正则表达式:^\s*(\S*\w\S*)\s*=(.*)$ 识别/匹配变量的分配,例如a = 12length = 3,效果完美。

我最近的问题:

我需要防止正则表达式捕捉/匹配,如果有一个函数赋值,例如:

f(x) = x^2

因为上面的正则表达式仍然捕获“变量”f(x)

如果有左括号 (.

所有这些例子都被忽略了:f(x)=…, g(x)=…, test(x)=…

JS代码:

var lineRegExp = /^\s*(\S*\w\S*)\s*=(.*)$/;
var match = lineRegExp.exec(line);
if(match) { ... }

最佳答案

变量名可以通过[A-Za-z_]\w*来匹配,所以你可以简单的使用:

^\s*([A-Za-z_]\w*)\s*=\s*(.*)

改为只匹配变量赋值。

关于javascript - 正则表达式匹配变量赋值 ("a=12") 但忽略函数赋值 ("f(x)=x^2"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52365047/

相关文章:

javascript - 如何在 php 表中执行 javascript 函数

javascript - 如何使用带有动态内容和触发器的 clipboard.js 进行复制

javascript - 多部分/表单数据可以用 javascript 发送吗?

python - 为什么第一次替换不匹配?

javascript - 使用正则表达式标记字符串中的文本但排除链接

R: Regex_Join/Fuzzy_Join - 以不同的词序连接不精确的字符串

javascript - 如何在不修改全局 Function.prototype 的情况下创建函数的继承属性?

JavaScript 上下文

Java 正则表达式不匹配任何内容

javascript - 当用户在 Angular 中使用正则表达式仅输入 0 或 0.0 时如何显示错误消息?