javascript - jquery正则表达式在第一次出现匹配后替换所有内容

标签 javascript jquery regex

我想替换 Stk 的第一场比赛后的所有内容。 使用了这个,但它不起作用:text.replace('/(Stk\.).*/','')

示例字符串(字符串为两行):

123456 50 Stk.
test Stk.

我想删除测试Stk。,因此第一个Stk之后的所有内容。

最佳答案

您需要从正则表达式文字周围删除单引号,使用 [\s\S] 来匹配替换模式中的任何字符和反向引用:

var text = "123456 50 Stk.\ntest Stk.";
console.log(text.replace(/(Stk\.)[\s\S]*/,'$1'));

详细信息:

  • (Stk\.) - 捕获与 Stk. 子字符串匹配的组 1,并将其存储在内存缓冲区中,可以使用 $1< 访问其内容 来自字符串替换模式的反向引用
  • [\s\S]* - 匹配任意 0 个或多个字符,尽可能多(因此,直到整个字符串的末尾,无论是否是多行)。

关于javascript - jquery正则表达式在第一次出现匹配后替换所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43894181/

相关文章:

javascript - REGEX - 在括号之后获取数据直到结束括号

python - unicode 正则表达式匹配 - 如何搜索复选标记? ✓

javascript - 如何使用 jQuery DataTables 从所有页面提交复选框

javascript - 什么会导致 onSubmit ="return checkTheForm()"不被执行?

javascript - 什么是 'matchesSelector' ?

javascript - 如何使用 jQuery 在 iPhone Safari 上创建照片 slider ?

javascript - 为什么我在接收和使用 JSON 响应时收到此警告

java - 大数据从 Javascript 到 servlet

javascript - 加载 DOM 页面后将所有复选框设置为 true

python - 在 python 正则表达式搜索中返回任何匹配的更好方法?