繁体   English   中英

Javascript正则表达式以匹配有界文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM