Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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_Java_Regex_Regex Lookarounds_Regular Language - Fatal编程技术网

Javascript 使用正则表达式查找单词之间的特定文本

Javascript 使用正则表达式查找单词之间的特定文本,javascript,java,regex,regex-lookarounds,regular-language,Javascript,Java,Regex,Regex Lookarounds,Regular Language,我试图替换一些字符串,但我有一个条件,即该字符串必须位于“标记”内。 我如何使用正则表达式来实现这一点 例如: Text multiline, bla bla bla **FOO** text text text *START_TAG* text text text text **FOO** a lot of texts **FOO** more text *END_TAG* 我想替换介于开始标记和结束标记之间的FOO文本 我试过这样做: (?<=word1)(.*?)(?=wor

我试图替换一些字符串,但我有一个条件,即该字符串必须位于“标记”内。 我如何使用正则表达式来实现这一点

例如:

Text multiline, bla bla bla **FOO** text text text 
*START_TAG* text text  text text **FOO** a lot of texts
**FOO**  more text
*END_TAG*
我想替换介于开始标记和结束标记之间的FOO文本

我试过这样做:

(?<=word1)(.*?)(?=word2)

(?在Java中,您可以使用一个正则表达式解决方案,如

String result = s.replaceAll("((?:\\G(?!\\A)|START_TAG)(?:(?!START_TAG|FOO).)*?)FOO(?=.*END_TAG)", "$1<REPLACED>");

那么,您是在Java中工作,对吗?请具体说明标记。抱歉。刚才添加了。解决方案可以相同,但对于Java,有一个正则表达式解决方案。是否要替换这些词之间出现的所有
FOO
?是的……完全正确。因为我从文件中读取了一个字符串,并且必须保持它不变,除了for这个词。刚刚测试过,差不多就到了。唯一的问题是像FOOTER或FOOBAR这样的词也会被更改。(顺便说一句,regex演示自start_标记以来一直处于高位)@VictorBello是的,它会“突出显示”从RealSttag标签中,因为正则表达式消耗了所有的标签和上次匹配的结束,直到代码“>英尺/代码>。你需要保存的是这样的。需要去匹配的是。是的……我用java匹配器来查看组,它从最后到FoO。问题是它可能会用Foo开始、结束或中间找到单词。你的意思是你需要匹配由字母/数字组成的整个单词吗?使用
\\bFOO\\b
String result = s.replaceAll("((?:\\G(?!\\A)|START_TAG)(?:(?!START_TAG|FOO).)*?)FOO(?=.*END_TAG)", "$1<REPLACED>");