【问题标题】:Regex Match value in Typescript打字稿中的正则表达式匹配值
【发布时间】:2016-03-30 08:32:28
【问题描述】:

我正在尝试从文本中提取特定模式的值。

示例文本:

Test: []
subtests: [a]

我想提取subtests: [a] 行或子测试[] 内的确切数据。 当我尝试匹配正则表达式时,它给出了错误的值。不知道我在这里做错了什么。

https://jsfiddle.net/k8e9hu0e/2/

谁能帮帮我?

【问题讨论】:

标签: javascript regex


【解决方案1】:

这是 Working Fiddle。所以唯一的改变是删除captures 即:将(.*) 更改为.*

解释你的问题..

这个正则表达式^subtests: (.*) 中有捕获。当您找到此正则表达式的匹配项时,它会为您提供一组所有正则表达式匹配项,然后是所有捕获项。所以第一组是subtests: [],然后是[]。因此你的输出是subtests: [],[](注意,)。

【讨论】:

  • @Reddy 如果这是正确的解决方案,那么您可以将其标记为答案。
  • 也许是正确的解决方案,但解释不正确。 为您提供所有正则表达式匹配项的集合 - RegExp#exec 不会生成所有匹配项的数组,您需要使用循环来获取所有匹配项
  • @WiktorStribiżew,也许你可以发布一个带有解释的答案。每个人都会受益。请
  • 和@WiktorStribiżew,Reddy 是 OP 而不是回答者:p
【解决方案2】:

这是一个现场演示。从您的源代码分叉和修改。 https://jsfiddle.net/soonsuweb/aj38617b/

var data = `blur blur subtests: [] blur\nblur`;
var regex = /subtests: \[.*\]/;
var test = regex.exec(data);
alert("Op: " + test);

【讨论】:

    猜你喜欢
    • 2017-07-18
    • 2023-01-07
    • 2013-01-16
    • 2019-04-25
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 2015-02-24
    相关资源
    最近更新 更多