Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
Regex extjs4.2-替换子字符串,但避免更改标记_Regex_String_Extjs_Replace_Extjs4.2 - Fatal编程技术网

Regex extjs4.2-替换子字符串,但避免更改标记

Regex extjs4.2-替换子字符串,但避免更改标记,regex,string,extjs,replace,extjs4.2,Regex,String,Extjs,Replace,Extjs4.2,在给定字符串中,例如“这是我的问题”,我需要替换子字符串 目标:用-标记围绕子字符串以突出显示 示例: 子字符串:“e” 期望的结果:这是我的问题 实际结果:这是我的问题 如何防止伪标记和被更改 到目前为止,我使用的是: 根据我的示例,filterValue将是子字符串“e” var filterStartTag = '<mark>'; var filterEndTag = '</mark>'; var replaceFilterValue = filterStartTa

在给定字符串中,例如
“这是我的问题”
,我需要替换子字符串

目标:用
-标记围绕子字符串以突出显示

示例

子字符串:“e”

期望的结果:
这是我的问题

实际结果:
这是我的问题

如何防止伪标记
被更改

到目前为止,我使用的是:

根据我的示例,filterValue将是子字符串“e”

var filterStartTag = '<mark>';
var filterEndTag = '</mark>';
var replaceFilterValue = filterStartTag + filterValue + filterEndTag;
value = value.replace(new RegExp(filterValue, 'gi'), replaceFilterValue);
var filterStartTag='';
变量filterEndTag='';
var replaceFilterValue=filterStartTag+filterValue+filterEndTag;
value=value.replace(新的RegExp(filterValue,'gi'),replaceFilterValue);
我需要找到一个解决方案,在这个解决方案中,像“t”、“te”、“erm”(等等)这样的子字符串也可以被适当地替换

任何帮助都将不胜感激。

尝试以下方法: 替换(/(e)+(?![^)/g,“$1”)

(e)
被解释为替换的
$1
,可以替换为符合您需要的任何正则表达式(用括号括起来,以允许
$1
替换)。因此,您也可以这样做,以便更具动态性:

var r = new RegExp("(" + filterValue + ")+(?![^<]*>)", "gi");
value.replace(r, "<mark>$1</mark>");
var r=newregexp(“(“+filterValue+”)+(?![^)”,“gi”);
价值。替换(r,“$1”);
本质上,这意味着要匹配第一个括号中的任何内容,除非它被标记
(?![^)

包围,请尝试以下操作: 替换(/(e)+(?![^)/g,“$1”)

(e)
被解释为替换的
$1
,可以替换为符合您需要的任何正则表达式(用括号括起来,以允许
$1
替换)。因此,您也可以这样做,以便更具动态性:

var r = new RegExp("(" + filterValue + ")+(?![^<]*>)", "gi");
value.replace(r, "<mark>$1</mark>");
var r=newregexp(“(“+filterValue+”)+(?![^)”,“gi”);
价值。替换(r,“$1”);

本质上,这意味着匹配第一个括号中的任何内容,除非它被标记
(?![^)包围

你真的救了我一天!我一整天都在绞尽脑汁,突然看到了你的答案。非常感谢,它似乎工作得很完美!我还有很多东西要学,似乎正则表达式也应该是其中的一部分;)!非常感谢!还有一个问题仍然存在:如果洛桑的“n”应该被替换,只有第一个问题是替换->洛桑,而不是我需要的:洛桑(也可用:洛桑)。你能再帮我一次吗?天哪…愚蠢的我:删除“+”吗:
var r=new RegExp(“+filterValue+”)(![^)”,“gi”);
:)你真的救了我一天!我一整天都在绞尽脑汁,突然看到了你的答案。非常感谢,它似乎工作得很完美!对我来说还有很多东西要学,似乎正则表达式也应该成为其中的一部分;)!非常感谢!还有一个问题仍然存在:如果洛桑的“n”被替换,只有第一次出现替换->洛桑,而不是我需要的:洛桑(也可用:洛桑)。你能再帮我一次吗?天哪…愚蠢的我:删除“+”吗:
var r=new RegExp((“+filterValue+”)(![^)”,“gi”);
:)