我怀疑这个问题已经在某个地方得到了回答,但我找不到它,所以......
我需要从较大字符串中的两个标记之间提取一个字符串,其中第二个标记可能会再次出现,这意味着...(伪代码...)
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 参考来解释如何指定“NEXT”标记而不是最后的标记。
非常感谢任何和所有帮助。
SO的类似问题:
- 正则表达式:提取字符串中两个标签之间的子字符串
- 正则表达式替换字符串中的所有 \n,但不替换 [code] [/code] 标记内的内容
- 使用正则表达式调用替换分隔符内的模式
- RegEx 匹配 HTML 标签并提取文本
您通过不指定来使用贪婪模式?
在里面。尝试这个:
".+B=(.+?);.+"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)