簡體   English   中英

正則表達式替換此字符串

[英]Regular expression to replace this string

我有這串

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

我可以用正則表達式替換什么,例如'| tb2 | value ' '| tb2 | value ' '| tb2 | value '''這個問題,

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

我知道值tbxx是我擁有的變量。

Regex引擎是javascript,而不是.Net或C#。

確切的語法取決於您使用的語言,但是您需要轉義| 字符,因為它在正則表達式中具有特殊含義。

在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 ", "");

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 您要刪除的key | val表示形式

您沒有足夠的信息來尋求通用的解決方案[1]。 您的字符串是否保證是正常的?

聽起來您的數據格式正確-您應該以某種方式解析它:

蟒蛇:

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標識符嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM