Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换此字符串的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 替换此字符串的正则表达式

Javascript 替换此字符串的正则表达式,javascript,regex,Javascript,Regex,我有这根绳子 "ABC-2341241244 | tb1 | value | tb2 | value | tb10 | value" 我可以用regex做些什么来替换,例如用'替换'替换' "ABC-2341241244 | tb1 | value | tb10 | value" 我知道值tbxx是一个变量 正则表达式引擎是javascript,而不是.Net或C#。确切的语法取决于您使用的语言,但您需要转义字符,因为它在正则表达式中具有特殊意义 在perl中,您可以执行以下操作: my $

我有这根绳子

"ABC-2341241244 | tb1 | value | tb2 | value | tb10 | value"
我可以用regex做些什么来替换,例如用
'
替换
'
替换
'

"ABC-2341241244 | tb1 | value | tb10 | value"
我知道值
tbxx
是一个变量


正则表达式引擎是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);
var
deletePair='tb2',
strIn=“ABC-2341244 | tb1 |值| tb2 | toDeletevalue | tb10 |值”,
pattern=newregexp(“\\\\\\”+deletePair+“\\\\\\\”([a-zA-Z0-9]+)”,“g”),
结果=标准替换(模式“”);
document.write(结果==“ABC-2341244 | tb1 |值| tb10 |值”
“好的”
:“失败”
);
文件。写入(“
”+结果);
编辑


添加了
deletePair
,其中指定了要删除的
key | val
表示中的key,您没有足够的信息用于通用解决方案[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
标识符上搜索?

什么正则表达式引擎。网?JAVAJavascript?PERL?这里真的需要正则表达式吗?纯字符串替换要简单得多。如果您事先知道确切的子字符串,那么简单的替换(…)将更容易:不需要正则表达式。这听起来是使用awk的好地方(如果可用)。正则表达式引擎-->javascript。我只知道'tbxx',我想删除与tb1关联的值,但我不知道我只知道介于| tbxx |和| tbxx2my之间的值的确切大小。我的分隔符是'|'。我想做你刚才做的事我怎么用javascript做呢?好的。。。但我的问题是,值不是“值”,可以有字母和数字OK。。。但我的问题是,值不是“值”,可以有字母和数字