求个正则
本帖最后由 Qokelate 于 2013-4-21 23:06 编辑如何用正则取出最内层 %包围里面的内容?
例如
%ABC%得到ABC
%123%ABC%%得到ABC(获取最内层)
%123%ABC%456%得到ABC(获取最内层)
%123%%%最内层为空,所以结果也为空
对正则实在搞不懂啊,压力山大
解释一下关于最内层
以%123%ABC%456% 为例,
首先从首尾各去掉一个%得到 123%ABC%456% (首尾去掉%是指 最左边的%和最右边的%,不一定是起始或结束字符)
然后 类似的 再去掉首尾的%得到 ABC
然后%不再对称,然后最内层就是ABC了 这个..不太好实现。有点奇怪。 莫名其妙的问题 回家想好怎么问问题再来问
你先告诉我
%123%ABC%456%789%里哪个叫最内层 让哥来告诉你....
%ABC%得到ABC
%123%ABC%%得到ABC(获取最内层)
%123%ABC%456%得到ABC(获取最内层)
%123%%%
去掉两边的%号.无视数直.最后剩下的%XXXXX%其中XXXX就是你要的内层 这个..不太好实现。有点奇怪。 菜鸟只会循环整…Local $Str = '%123%ABC%456%'
Do
$Str = StringRegExpReplace($str, '^[^%]*?%|%[^%]*?$', '')
Until @extended = 0
MsgBox(0, '', $Str) 回复 6# afan
比我的不断搜索字符和对比的高明多了
方法收下 3Q Local $Str = '%123%ABC%456%'
$Str = StringRegExpReplace($str, '.*?%(+)%.*', '\1')
MsgBox (0, "Tips", $str)
只保留ABC Local $Str = '%123%%%'
$arr=StringSplit($Str,"%")
$Str=$arr/2)]
MsgBox(0, '', $Str)感觉不用正则,除非能使用平衡组功能 回复 9# kevinch
这思路不错,又学一招
页:
[1]