[英]Javascript Regex to match bounded text
我有这样的文字:
....foo..bar....
foo和bar可以是任何文本。
也可能是:
anypreamble....foo..bar....anypostamble
我试图匹配foo和bar,但是我一直匹配整个东西。
这是一些代码:
var s = "this....AAAAAAAAAA..BBBBCD....that";
console.log(s.replace(/\.{4}.+\.{2}(.+)\.{4}/g, 'X'));
我希望以上给出的是:thisAAAAAAAAAAXthat,相反,它给出:thisXthat。
你能帮我吗?
这是一个小提琴: https : //jsfiddle.net/vfkzdg9y/1/
如果要用X分隔两个字符串(foo和bar),则可以使用:
var s = "this....AAAAAAAAAA..BBBBCD....that";
console.log(s.replace(/[^\.]*\.{4}([^\.]+)\.{2}([^\.]+)\.{4}.*/g, '$1X$2'));
产量
AAAAAAAAAAXBBBBCDCD
您还可以使用:
console.log(s.replace(/[^\.]*\.{4}(.+)\.{2}(.+)\.{4}.*/g, '$1X$2'));
哪个产量
AAAAAAAAAAXBBBBBB.CD
第二个例子
尝试使用RegExp
/(\\.{2}\\w+)(?=\\.{4}\\w+$)|\\./g
来匹配两个连续的.
字符,后面跟随字母数字字符,如果后面跟随四个.
字符后跟字母数字字符,后跟字符串末尾; 更换.
空字符串,否则为捕获的匹配返回"X"
s.replace(/(\.{2}\w+)(?=\.{4}\w+$)|\./g, function(match) {
return match === "." ? "" : "X"
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.