正则表达式替换此字符串

时间:2010-02-08 15:41:15

标签: javascript regex

我有这个字符串

"ABC-2341241244 | tb1 | value | tb2 | value | tb10 | value"

我可以使用正则表达式进行替换,例如'| tb2 | value '''进行替换,

"ABC-2341241244 | tb1 | value | tb10 | value"

我知道值tbxx是我的变量。

正则表达式引擎是javascript,而不是.Net或C#。

3 个答案:

答案 0 :(得分:3)

确切的语法取决于您使用的语言,但您需要转义|字符,因为它在正则表达式中具有特殊含义。

在perl中你会做类似的事情:

my $string = "ABC-2341241244 | tb1 | value | tb2 | value | tb10 | value";
$string =~ s/\| tb2 \| value //;

在java中它将是:

String string = "ABC-2341241244 | tb1 | value | tb2 | value | tb10 | value";
string = string.replaceAll("\\| tb2 \\| value ", "");

答案 1 :(得分:0)

javascript 替换

var 
    deletePair = 'tb2',
    strIn = "ABC-2341241244 | tb1 | value | tb2 | toDeletevalue | tb10 | value",
    pattern = new RegExp("\\| " + deletePair + " \\| ([a-zA-Z0-9]+) ", "g"),
    result = strIn.replace(pattern, '');

document.write(result === "ABC-2341241244 | tb1 | value | tb10 | value" 
    ? 'ok'
    : 'failed'
);
document.write('<br />' + result);

修改

添加了deletePair,您可以在其中指定要删除的key | val表示中的

答案 2 :(得分:0)

您没有足够的信息来获得通用解决方案[1]。你的字符串是否保证是正常的?

听起来你的数据形式很好 - 你应该以某种方式解析它:

<强>的Python:

import csv
input = "ABC-2341241244 | tb1 | value | tb2 | value | tb10 | value"
parts = input.split("|")
r = csv.reader([input],delimiter='|')
parts = r.next()
try:
  i = parts.index(" tb2 ")
  parts = parts[0:i] + parts[i+2:]
except ValueError:
  pass

print "|".join(parts)

打印:

ABC-2341241244 | tb1 | value | tb10 | value

[1]你的分隔符是'|'吗?或者是' | '?你能逃脱数据中的|吗?您只搜索tbXX个标识符吗?