我怀疑这已经在某个地方得到了回答,但我找不到它,所以......
我需要从一个较大字符串中的两个标记之间提取一个字符串,其中第二个标记可能会再次出现,意思是......(伪代码......)
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;” 大概是因为它只是寻找';'的最后一个实例 在字符串中,而不是停在第一个出现的地方。
我尝试使用 (?=) 来搜索第一个 ';' 但它给了我同样的结果。
我似乎找不到一个正则表达式参考来解释如何指定“NEXT”令牌而不是最后的那个。
非常感谢任何和所有帮助。
关于SO的类似问题: