我不明白,为什么这个正则表达式无法按我预期的那样工作:
正则表达式:^<prefix>(.*?)(<optTag.*?>)?(.*?)<postfix>$
测试:<prefix>some chars<optTag value>some chars<postfix>
测试结果:
第一组:空
第2组:空
第3组:some chars<optTag value>some chars
我希望第二组= <optTag value>
最佳答案
您不能在可选捕获组之前使用非贪婪通配符。使用此代替:
^<prefix>([^<]*)(<optTag.*?>)?(.*?)<postfix>$