正则表达式提取字符串文本

时间:2018-03-21 14:10:54

标签: regex

  • 我的输入:前转:[ProQuest Alert] test fwd:TestFwd:test2fwd:fwd:test3
  • 我的输出必须是:test fwd:TestFwd:test2fwd:fwd:test3
  • 我的错误输出:test TestFwd:test2fwd:

这是我的Regexp:

Task("RunTests")
    .IsDependentOn("Build")
    .Does(() =>
{
    SpecFlowTestExecutionReport(tool => {
    tool.NUnit3("./SampleProject/bin/Release/SampleProject.dll",
        new NUnit3Settings {
            Results = new List<NUnit3Result> {
                new NUnit3Result {
                    FileName = "testresults.xml",
                    Format = "nunit2"
                }
            },
            Labels = NUnit3Labels.All,
            OutputFile = "testoutput.txt"
        });
    }, project,
    new SpecFlowTestExecutionReportSettings {
        Out = "report.html"
    });
});

感谢任何帮助。

非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试将replace与此正则表达式/^.*?\[.*?]\s*/

一起使用

说明:

  • ^在字符串

    的开头断言位置
    • .*?匹配任何字符(行终止符除外)
    • *?量词 - 零和无限次之间的匹配,尽可能少,根据需要扩展(懒惰)
    • \[匹配字符[字面意思(区分大小写)

      • .*?匹配任何字符(行终止符除外)
      • *?量词 - 零和无限次之间的匹配,尽可能少,根据需要扩展(懒惰)
    • ]字面匹配(区分大小写)
    • \s*匹配任何空白字符(等于[\ r \ n \ t \ f \ v])
    • *量词 - 在零和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)

var str = "Fwd: [ProQuest Alert] test fwd:TestFwd: test2fwd: fwd:test3";
str = str.replace(/^.*?\[.*?]\s*/, ' ');
console.log(str)