我有这样的文字:
....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。
你能帮忙吗?
这是一个 fiddle :https://jsfiddle.net/vfkzdg9y/1/
最佳答案
如果你想得到用X分隔的两个字符串(foo和bar),你可以使用:
var s = "this....AAAAAAAAAA..BBBBCD....that";
console.log(s.replace(/[^\.]*\.{4}([^\.]+)\.{2}([^\.]+)\.{4}.*/g, '$1X$2'));
产量
AAAAAAAAAAXBBBBCD
您还可以使用:
console.log(s.replace(/[^\.]*\.{4}(.+)\.{2}(.+)\.{4}.*/g, '$1X$2'));
哪个产量
AAAAAAAAAAXBBBB.CD
第二个例子。
关于Javascript正则表达式匹配有界文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913399/