找回密码
 加入
搜索
查看: 9341|回复: 8

[AU3基础] au3怎样截取两个字符串中间的字符(已解决)

  [复制链接]
发表于 2013-6-3 08:16:49 | 显示全部楼层 |阅读模式
本帖最后由 fuldho 于 2013-6-3 11:25 编辑

au3截取两个字符串中间的字符
$str="2.txt"
$a =已知字符串1
$b=已知字符串2

返回包括和不包括已知字符串1和已知字符串2之间的字符。

谢谢!
发表于 2013-6-3 09:34:48 | 显示全部楼层

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

评分

参与人数 1金钱 +40 收起 理由
fuldho + 40 谢谢你!已解决!

查看全部评分

 楼主| 发表于 2013-6-3 11:26:04 | 显示全部楼层
本帖最后由 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
发表于 2013-6-3 12:05:42 | 显示全部楼层
回复 3# fuldho


    这个?
#Include <String.au3>
_StringBetween($s_String, $s_Start, $s_End [, $v_Case = -1])
 楼主| 发表于 2013-6-3 13:19:20 | 显示全部楼层
回复 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
发表于 2013-6-3 13:23:09 | 显示全部楼层
回复  afan
_StringBetween只能返回到组数而不能返回对话框?

#include
#include

_Main()

...
fuldho 发表于 2013-6-3 13:19



    是需要字符串吗?因为其返回的是数组,需指定下标
MsgBox(64, '', $results[0])
 楼主| 发表于 2013-6-3 13:29:32 | 显示全部楼层
回复 6# afan


    谢谢afan大虾指点!
发表于 2014-9-30 15:18:20 | 显示全部楼层
很有作用,支持一下
发表于 2015-6-6 01:12:33 | 显示全部楼层
这个只执行第一次的,如果后面还有相同的字符串及内容,要如何把后面所有的相同字符串中间的内容全部提出来如何加命令呢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 23:45 , Processed in 0.112047 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表