Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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/4/regex/20.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/5/ember.js/4.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
regexjava:如何在泛型的开始标记和结束标记之间替换泛型中的字符串_Java_Regex_Tags - Fatal编程技术网

regexjava:如何在泛型的开始标记和结束标记之间替换泛型中的字符串

regexjava:如何在泛型的开始标记和结束标记之间替换泛型中的字符串,java,regex,tags,Java,Regex,Tags,在java中,我有这样一个字符串: "bla bla bla bla [BACK] bla bla bla [bla bla [GO] bla bla bla bla [bla" 我想用正则表达式找到一条规则,用“(start)”替换开始标记“[”,用“(end)”替换结束标记“]” 应忽略“仅开始标记或结束标记” 结果是,我将得到以下结果: bla bla bla bla (start)BACK(end) bla bla bla [ bla bla (start)GO(end) bla b

在java中,我有这样一个字符串:

"bla bla bla bla [BACK] bla bla bla [bla bla [GO] bla bla bla bla [bla" 
我想用正则表达式找到一条规则,用“(start)”替换开始标记“[”,用“(end)”替换结束标记“]”

应忽略“仅开始标记或结束标记”

结果是,我将得到以下结果:

bla bla bla bla (start)BACK(end) bla bla bla [ bla bla (start)GO(end) bla bla bla bla [bla

将只匹配/替换平衡的
[
/
]
对,但它们之间没有括号。

在您的示例中,为什么忽略第一个括号?不管怎样,这就是正则表达式

js:
'bla bla bla bla bla[BACK]bla bla bla[bla bla bla[GO]bla bla bla bla bla bla[bla]。替换(新的RegExp(/\[([^\[\]+?)\]/g),'(开始)1美元(结束)


结果:
“bla-bla-bla-bla(开始)BACK(结束)bla-bla-bla[bla-bla(开始)GO(结束)bla-bla-bla[bla”

是否有任何规则说明开始和结束标记之间到底允许什么(除此之外,括号显然不允许)?
String resultString = subjectString.replaceAll(
    "(?x)       # Turn on verbose mode                    \n" +
    "\\[        # Match a [                               \n" +
    "(          # Match and capture in group 1:           \n" +
    "[^\\[\\]]* # Any number of characters except brackets\n" +
    ")          # End of capturing group                  \n" +
    "\\]        # Match a ]", "(start)$1(end)");