正则表达式匹配模式以':'结尾,但不包括它



我是regex的新手,我不知道如何获取":"之前的文本,但不包括它。

我在代码中进行了替换,所以我需要选择后的所有文本

这里有一个演示:

/(?!.*:)./

谢谢你的帮助。

您似乎需要

const rx = /^[^:rn]+(?=:)/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>";

详细信息

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