Регулярное выражение для замены этой строки - PullRequest
1 голос
/ 08 февраля 2010

У меня есть эта строка

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

Что я могу сделать с регулярным выражением, чтобы заменить, например, '| tb2 | value ' на '' этим,

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

Я знаю, что значение tbxx является моей переменной.

Движок Regex - это JavaScript, а не .Net или C #.

Ответы [ 3 ]

3 голосов
/ 08 февраля 2010

Точный синтаксис зависит от языка, который вы используете, но вам нужно экранировать символ |, поскольку он имеет особое значение внутри регулярных выражений.

В 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 ", "");
0 голосов
/ 08 февраля 2010

У вас недостаточно информации для общего решения [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 идентификаторам?

0 голосов
/ 08 февраля 2010

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 представлении, которое вы хотите удалить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...