不知那个 ~m 怎么理解,我把后面的部分——/\((.*?)\)/g试了下,发现还是上面答案一样的问题,大概真的是flex自己的问题吧,我在网上也看了一些别的例子,基本上都是会出现这个问题,我试着自己组了一下表达式,也不行……哎……
不过还是谢谢啦!~
~m、这个不是这样的,=~,这个符号代表匹配;后面的m/\((.*?)\)/g,m//这个叫做模式、m是个简称可以不写的、直接用//;
发现还是上面答案一样的问题?这个有问题吗,不是结果正确的啊!
哦,我没接触过perl,不知道那个是匹配,见笑了~
前面都去掉的话,剩下的不就是 /\((.*?)\)/g 了吗?我刚才试的就是这个式子
是的、用
@a @b #输出的结果,如故用perl 这个输出的结果就是你想要的;flex可能不支持这种正则表达式
这个式子我知道,但是只能找到一个,而且中间()需要加转义字符吧……
我用的flex,在表达式后面加g再match的话——(?<=\()[^\(\)]+(?=\))/g ,会出现读取两次第一个()中内容的情况,不知道哪里出了错,请帮忙啊~
有的正则引擎不支持(?<
可能是这种原因吧
我没用过flex
有没有
这种 "\(([^()]+)\)"
取Group1的试一下
我试了"\(([^()]+)\)"这个,不过也不行,还是会出现读取两次第一个()中内容的情况,而且我发现你给的第一个式子跟这个效果一样,也就是说中间的转义字符加不加皆可,难道说我理解错了,那并不是个转义字符?还是中间根本就没起作用?
追答由于没用过flex
所以这个问题我解决不了了