我猜这个问题可能已经有了答案,但是我找不到,所以...
我需要从一个较大的字符串中提取两个标记之间的字符串,其中第二个标记可能会再次出现...(伪代码...)
myString = "A=abc;B=def_3%^123+-;C=123;" ;
myB = getInnerString(myString, "B=", ";" ) ;
method getInnerString(inStr, startToken, endToken){
return inStr.replace( EXPRESSION, "$1");
}
因此,当我使用表达式 ".+B=(.+);.+
" 运行时,我得到了 "def_3%^123+-;C=123;",这可能是因为它只查找字符串中最后一个 ';' 的实例,而不是在遇到第一个 ';' 时停止。
我尝试使用 (?=) 在搜索第一个 ';',但它给我相同的结果。
我似乎找不到一个Regexp参考,解释如何指定“下一个”标记而不是结尾处的标记。
非常感谢任何和所有的帮助。
类似的SO问题: