我下面有这个字符串
__setitem__
我正在尝试用空格替换所有[01]ABC0007[0d0a]BB BABLOXC[0d0a]067989 PLPXBNS[0d0a02]BBR OIC002 L5U0/P AMD KAP 041800 T1200AND 2+00[0d0a0b03]
。
我尝试过的。
[..]
仅此而已。
return this.text.replace(new RegExp('[0d0a] | [0d0a02] | [0d0a02]' ) , ' ')
return this.text.replace(new RegExp('\[0d0a\] | \[0d0a02\] | \[0d0a02\]' ) , ' ')
此here中的帖子涉及多个步骤。这将用作 mongo 查询的 Bson 过滤器的'javascript'字符串输入,因为mongo尚不具备 REPLACE 功能,例如SQL有。有一个open请求。
答案 0 :(得分:2)
您需要使用方括号\[\]
。另外,您可以检查方括号之间的内容(非贪婪):\[.*?\]
:
let string = `[01]ABC0007[0d0a]BB BABLOXC[0d0a]067989 PLPXBNS[0d0a02]BBR OIC002 L5U0/P AMD KAP 041800 T1200AND 2+00[0d0a0b03]`;
let replaced = string.replace(/\[.*?\]/g, ' ');
console.log(replaced);
答案 1 :(得分:0)
例如,如果要匹配\[
,则必须逃脱左括号[0d0a]
。在第二个正则表达式中,您必须删除|
前后的空格,因为它具有含义。
您的正则表达式如下:
let str = "[01]ABC0007[0d0a]BB BABLOXC[0d0a]067989 PLPXBNS[0d0a02]BBR OIC002 L5U0/P AMD KAP 041800 T1200AND 2+00[0d0a0b03]";
console.log(str.replace(/\[0d0a]|\[0d0a02]|\[0d0a02]/g, ' '));
如果您希望从开始到结束都匹配所有内容,可以使用:
这将从[
到]
匹配,并且匹配使用否定的字符类[^[]+
之间的匹配,而否定的字符类将不匹配]
一次或多次。
let str = "[01]ABC0007[0d0a]BB BABLOXC[0d0a]067989 PLPXBNS[0d0a02]BBR OIC002 L5U0/P AMD KAP 041800 T1200AND 2+00[0d0a0b03]";
console.log(str.replace(/\[[^\]]+]/g, ' '));