【问题标题】:Regex match pattern end with ':' but not include it正则表达式匹配模式以 ':' 结尾但不包括它
【发布时间】:2018-02-06 21:56:15
【问题描述】:

我是正则表达式的新手,我不知道如何在 ':' 之前获取文本,但不包含它。

我在我的代码中做了一个替换,所以我需要选择':'之后的所有文本

这是demo

/(?!.*:)./

感谢您的帮助。

【问题讨论】:

  • 请分享预期的输出。
  • 感谢您的帮助,所需的输出只有字符名称:Hilary: Devon Hilary Devon Hilary
  • /(?>.*:)/ 试试这个
  • 如果匹配则使用:/^[^:]*/

标签: javascript regex


【解决方案1】:

看来你需要

const rx = /^[^:\r\n]+(?=:)/gm;
const str = `Hilary: YOU KNOW, THIS IS NOT WHY I CAME HERE.
Devon: DOESN'T MATTER.
Hilary: IT DOES. DEVON, WHEN I SAY THAT I'M TIRED OF SNEAKING AROUND, I MEANT IT.
Devon: DON'T GET UPSET, THOUGH.
Hilary: HOW CAN I NOT? I MEAN, LOOK AT WHAT I DID.
Devon: HONEY, HONEY, WE'RE IN LOVE WITH EACH OTHER. OKAY? AND WE KNOW EXACTLY WHAT WE HAVE TO DO. WE'RE GONNA TELL NEIL THE TRUTH.
Hilary: NOW?
Dr. Barrett: I THINK YOU CAN PROVIDE SOME VALUABLE INSIGHT INTO PHYLLIS NEWMAN'S RECENT STATE OF MIND.`;
document.body.innerHTML = "<pre>" + JSON.stringify(str.match(rx), 0, 4) + "</pre>";

详情

  • ^ - 字符串开头
  • [^:\r\n]+ - 除了:、CR 和 LF 之外的一个或多个字符
  • (?=:) - 当前位置右侧必须有:

【讨论】:

    猜你喜欢
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 2011-09-23
    相关资源
    最近更新 更多