au3怎样截取两个字符串中间的字符(已解决)
本帖最后由 fuldho 于 2013-6-3 11:25 编辑au3截取两个字符串中间的字符
$str="2.txt"
$a =已知字符串1
$b=已知字符串2
返回包括和不包括已知字符串1和已知字符串2之间的字符。
谢谢!
Func ies($datt, $a, $b, $reee = "", $s = 1, $c = 1);查找$a$b之间的文字,$a = 前面的关键词,$b=后边的关键词,$s = 从哪里开始查询 ,默认从$data最开始,$c = 查询第几个,默认为1
$start = StringInStr($datt, $a, 0, $c, $s)
If $start > 0 Then
$start = $start + StringLen($a);查找$a的结束位置
Else
Return $reee
EndIf
$end = StringInStr($datt, $b, 0, 1, $start);从$a的结束位置开始查找$b的位置
If $end > 0 Then
$amount = $end - $start;获得中间部分字符的数量
Else
Return $reee
EndIf
Return StringMid($datt, $start, $amount);返回结果
EndFunc ;==>ies
本帖最后由 fuldho 于 2013-6-3 11:27 编辑
根据大虾的帮助修改一下
$txt = "帮助.txt"
$datt = FileRead($txt )
$a = "B)"
$b = "C)"
Local$amount
$start = StringInStr($datt, $a, 0, 1)
If $start > 0 Then
$start = $start + StringLen($a);查找$a的结束位置
Else
MsgBox(64, "提示", "没有找到 "&'"'&$a&'"'&" 相同的字符" )
EndIf
$end = StringInStr($datt, $b, 0, 1, $start);从$a的结束位置开始查找$b的位置
If $end > 0 Then
$amount = $end - $start;获得中间部分字符的数量
$results= StringMid($datt, $start, $amount);返回结果
MsgBox(64, "提示", $results)
Else
MsgBox(64, "提示", "没有找到 "&'"'&$b&'"'&" 相同的字符" )
EndIf 回复 3# fuldho
这个?
#Include <String.au3>
_StringBetween($s_String, $s_Start, $s_End [, $v_Case = -1]) 回复 4# afan
_StringBetween只能返回到组数而不能返回对话框?
#include <String.au3>
#include <Array.au3>
_Main()
Func _Main()
Local $results= _StringBetween("123bbcd567", "bb","d5")
_ArrayDisplay($results, 'Default Search')
MsgBox(64, "", $results)
EndFunc ;==>_Main 回复afan
_StringBetween只能返回到组数而不能返回对话框?
#include
#include
_Main()
...
fuldho 发表于 2013-6-3 13:19 http://www.autoitx.com/images/common/back.gif
是需要字符串吗?因为其返回的是数组,需指定下标
MsgBox(64, '', $results) 回复 6# afan
谢谢afan大虾指点! 很有作用,支持一下 这个只执行第一次的,如果后面还有相同的字符串及内容,要如何把后面所有的相同字符串中间的内容全部提出来如何加命令呢
页:
[1]