Javascript正则表达式替换东西://something.something与其他东西

时间:2017-08-23 13:21:08

标签: javascript regex

我真的不知道该怎么称呼它,但我正在努力。

所以我现在正在编写一些Javascript,我试图检测/替换某些内容

例如,我希望epp://t.e更改为ui

它始终以uii开头,但它可以是uieuiq / .e,它始终以.eq结尾,但它可以是.ep / .eyqk / /ui.*:\/\/.*\.e.*/igm

我知道如何更换它,但我只是想为它获得正确的正则表达式

我尝试了abc.stuff.xyz,但它完成了整行,我只是想让它替换一个解析。

所以基本上我想要它替换它就像我做的那样,但是我希望它只能在没有任何空格的情况下进行一次Parse,例如,我知道如何做到像abc.somethingelse.xyz之类的东西来做它try{ myPath = "../Grafiche/ePriceData.txt"; $.evalFile(myPath); eval(thisComp.name)[index+1]; 等等,但是用它来代替整个字符串而不是一个字。

我是Regex的新手,所以如果我错过了一些非常明显或容易的事情,请不要感到惊讶。如果您要解释它是如何工作的话,回复它会很棒

1 个答案:

答案 0 :(得分:0)

由于您要替换文本中没有空格的文本,因此可以使用单词边界\b\S来匹配任何不是空格的内容。

具体而言,就像寻找字母[a-z]*而不是使用.*一样,可以更清晰地表达您需要的内容。

实施例:



var str = "blah uii://thiscanbeanything.eau blah";

const regex = /\b(ui[a-z]?):\/\/(\S*)\.(e[a-z]{0,3})\b/gi;

console.log(str.replace(regex, "epp://t.e"));

// using the capture groups
console.log(str.replace(regex, "$1://something.$3"));




m多行标记未被使用,因为正则表达式不是^& $为开始&结束了。