javascript - 另一个选择中的正则表达式选择

标签 javascript regex regex-greedy

所以我有这样一个字符串:

var a = " 'asdf'+'asdf'+'we' + 1";

我可以选择三个引号:

'([^']*)'

如何使用正则表达式选择字符串中单引号 (') 的开头? 还有一个单独的正则表达式来选择单引号(')的结尾?正则表达式可能吗?我将用 <<.

替换引号的开头

最终的字符串看起来像

 " <<asdf'+<<asdf'+<<we' + 1"

最佳答案

当你只需要替换模式的某些部分时,在你需要保留的部分周围使用捕获组,并且只匹配(并消耗)你需要删除的部分。

var a = " 'asdf'+'asdf'+'we' + 1";
console.log(
    a.replace(/'([^']*')/g, '<<$1')
);
// And, to replace both ' in one go (notice the ) shift to the left):
console.log(
    a.replace(/'([^']*)'/g, '<<$1>>')
);

这里,

  • ' - 匹配和消费 '
  • ([^']*') - 匹配并捕获到第 1 组零个或多个除 ' 以外的字符(带 [^']* )然后是 ' . $1替换模式中的占位符是找到有效匹配项后第 1 组中存储的内容的占位符。
  • ([^']*) - 只捕获除 ' 以外的任何 0+ 个字符进入第1组,最后'被匹配和消耗,将在$1中丢失占位符内容。

另请参阅 regex demo 1regex demo 2 .

关于javascript - 另一个选择中的正则表达式选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46068223/

相关文章:

Java Substring - 提取下一个出现的引号中包含的字符串

regex - 需要正则表达式来查找两个标记之间的子字符串

Python非贪婪正则表达式来清理xml

用于匹配 3 个字母和 1-2 个数字的正则表达式

php - 头像生成器的实时 View

javascript - Next.js API 路由中的正文超出 1mb 限制错误

Java 字符串标记

regex - 在 shell 脚本中检索正则表达式后的单词

javascript - Angularjs 反转数组给出错误

javascript - 有一个大整数数组需要返回一个数组,该数组将数组表示的值加 1