再请教一个正则如何写。
本帖最后由 auto 于 2012-6-19 11:35 编辑实在不会上来请教一下
例如
<AB CD>111111</AB>
<AB CD DD=1%><A HREF = "HTTP://JDKFAJ.COM.CCNN">2222222</A></AB>
结果
111111
2222222 Local $Str = _
'<AB CD>111111</AB>' & @CRLF & _
'<AB CD DD=1%><A HREF = "HTTP://JDKFAJ.COM.CCNN">2222222</A></AB>' & @CRLF
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExpReplace($str, '<.+?>', '')
MsgBox(0, '替换结果', $Test) 回复 2# afan
举例比较简单,这个确实可以这样……但在实际应用中……还有其它文字……不好提取
A版你有没有出过正则教程?
如可我这样<.+>(.+)<.+> 可以提交取11111.但是2222222却多了〈/A〉 练练手,献丑了!...
#include <Array.au3>
Local $Str = _
'<AB CD>111111</AB>' & @CRLF & _
'<AB CD DD=1%><A HREF = "HTTP://JDKFAJ.COM.CCNN">2222222</A></AB>' & @CRLF
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '(?<=>)[^<>\s]+?(?=<)', 3)
_ArrayDisplay($Test)
回复 3# auto
这种情况用非贪婪模式就行了:'<.+>(.+?)<.+>' 回复 4# bdancerlc
由于测试例子给数据少,基本满足需求了……个别过滤可能再处理一下。
完全看不懂……这个正则是什么意思。
能解释一下吗? 回复 5# shqf
总搞不清贪婪模式的作用 正则还在学 看看 回复afan
举例比较简单,这个确实可以这样……但在实际应用中……还有其它文字……不好提取
...
auto 发表于 2012-6-19 11:50 http://www.autoitx.com/images/common/back.gif
如果你举的例子很简单,而我写的表达式又写得很复杂那又该怎么说呢?
正则的灵活性是很强的,满足了既定的条件又何必思前想后。如果有更多的情况为何不提出来呢? 回复 4# bdancerlc
(?=xxx) : 正向预搜索,判断当前位置右侧是否能匹配指定表达式
(?<=xxx): 反向预搜索,判断当前位置左侧是否能够匹配指定表达式
[^xxx] : 表示匹配的结果中不包含xxx
在我的表达式中:(?<=>)[^<>\s]+?(?=<)
(?<=>):表示 与匹配的结果 左边 是 <
(?=<) :同理右边<
[^<>\s] : 不匹配 '<','>',空白符 回复 9# afan
从网页提取的……。
前后都还没有其它的字符……
由于是内网的东东,不方便复制传上来。
只能虚拟几个数据……
其实你的方式也可以,就是其它的〈刚好在〉的文字都提取出来……
就我给的演示数据,你的操作方法是最简单。 StringRegExpReplace($str, '<[^>]*>','') 回复 10# bdancerlc
学习了,不过有个笔误,呵呵! 回复 1# auto
凑个闹猛,呵呵
StringRegExp($str, '(?m)>([^><\s]+)<',3)
页:
[1]