javascript - 正则表达式通过特定符号查找单词

标签 javascript regex

我有一个字符串:

const str = 'DELETE FROM "organization" WHERE "name" = $1 AND "metadata" = $2 AND "id" = $3';

我需要找到“元数据”单词来修改它。我只知道"metadata"这个词后面有= $2

const regex = RegExp(/ = $2/); // just to show what I have
const foundWord = someMagicWithRegex(str, regex); // "metadata"
const newString = str.replace(foundWord, `${foundWord}::text`);
console.log(newString);

'DELETE FROM "organization" WHERE "name" = $1 AND "metadata"::text = $2 AND "id" = $3'

regex 应该是什么样子? (如果可能的话)

最佳答案

您可以使用

var str = 'DELETE FROM "organization" WHERE "name" = $1 AND "metadata" = $2 AND "id" = $3';
console.log(str.replace(/"[^"]*"(\s*=\s*\$2\b)/g, '"NEW METADATA"$1'));

正则表达式为"[^"]*"(\s*=\s*\$2\b):

  • "[^"]*" - ",除 " 之外的 0 个或多个字符,然后是 "
  • (\s*=\s*\$2\b) - 捕获组 1(替换模式中的 $1 指的是捕获到该组中的值):
    • \s*=\s* - 包含 0 个以上空格的 =
    • \$ - $ 字符(必须转义)
    • 2\b - 2 作为一个完整的单词。

关于javascript - 正则表达式通过特定符号查找单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56788687/

相关文章:

java - matcher.find() 有什么问题?

c# - 拆分以逗号分隔的行,注意不要在文本 block 内的逗号上拆分

javascript - electron js如何对源码进行混淆和保护源码

javascript - 如何将点击项目的索引移动到另一个不是父组件的组件?

javascript - 通过数组进行碰撞检测

javascript - 排除正则表达式中的字符串

javascript - 使用属性作为变量从 <a href> 单击进行 AJAX 调用

javascript - 使用“selector;”删除 jQuery 中的 ".on"Click 事件

regex - 如何在两个字符之间用notepad++替换空格

JavaScript 正则表达式 : Ignore closing bracket when enclosed in parentheses