2017-08-29 81 views
1

我是新来的正则表达式,我没有找到如何获得前文“:”但不包含它。正则表达式匹配模式与结束“:”但不包括它

我在我的代码代替,所以我需要后,选择所有文字“:”

这里是一个demo

/(?!.*:)./ 

谢谢您的帮助。

+0

右侧看到这个:https://regex101.com/r/aS2pH9/7 – anubhava

+1

请分享预期的输出。 –

+0

感谢您的帮助,所需的输出只有角色名字:希拉里: 德文 希拉里 德文 希拉里 – amerej

回答

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
  • (?=:) - 必须有:立即到当前位置
+0

我无法赞成你,但非常感谢你。 – amerej