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

[AU3基础] 怎样取得某个路径的目录名称??[求个正则表达式]

  [复制链接]
发表于 2010-10-22 11:17:33 | 显示全部楼层 |阅读模式
本帖最后由 猎英夜客 于 2010-10-22 11:28 编辑

路径是输入的,不管是什么,想获得最后目录的名称
D:\324
D:\11\322
c:\44\aa
e:\66\55\


$a=以上目录任何一个

$b=最后的子目录
 楼主| 发表于 2010-10-22 11:21:30 | 显示全部楼层
不管怎样输入目录,我都要获得最后的子目录的名称
发表于 2010-10-22 12:57:56 | 显示全部楼层
用StringSplit()函数可以实现
发表于 2010-10-22 14:06:50 | 显示全部楼层
$Str = _
                'D:\324' & @CRLF & _
                'D:\11\322  ' & @CRLF & _
                'c:\44\aa ' & @CRLF & _
                'e:\66\55\'
$sR = StringRegExp($str, '(?m).*\\([^\\\r]+?)(?=\\\s*$|\s*$)', 3)
#include <Array.au3>
_ArrayDisplay($sR, UBound($sR))
发表于 2010-10-23 13:22:44 | 显示全部楼层
用"\"把字符创分开,然后找数组最后一个元素。
发表于 2010-10-23 13:30:12 | 显示全部楼层
回复 1# 猎英夜客


    其实你这个可以用3#的方法, 不一定要用正则, 要考虑到自己的实际情况。 用简单的方法能行,尽量用简单的。以后也好查错
发表于 2010-10-24 03:33:18 | 显示全部楼层
支持楼上!说得有道理!
发表于 2010-10-27 08:06:29 | 显示全部楼层
没必要什么都弄的那么麻烦,正则是快,不过用不好出问题更麻烦,不如用stringsplit了,结果出来的和正则拆完了一样,都是数组
发表于 2010-10-27 13:32:41 | 显示全部楼层
http://www.autoitx.com/forum.php ... p;extra=&page=2

$a="c:\windows\notepad.exe"
msgbox(0,'test',_getfileinfo(_getfileinfo($a,3),0))
Func _GetFileInfo($spath, $Sflag = 0)
        $spath = StringRegExpReplace($spath, '["' & "']", '')
        Select
                Case $Sflag = 3 ;获取文件目录
                        If StringRegExp($spath, '\\') Then
                                $sFileInfo = StringRegExpReplace($spath, '\\[^\\]*$', '')
                        Else
                                $sFileInfo = ''
                        EndIf

                        Return ($sFileInfo)
                Case $Sflag = 2;给出文件扩展名
                        $sFileInfo = StringRegExpReplace($spath, '.+\.', '')
                        Return ($sFileInfo)
                Case $Sflag = 1 ;给出文件名但不包含扩展名
                        $sFileInfo = StringRegExpReplace($spath, '.+\\', '')
                        $sFileInfo = StringRegExpReplace($sFileInfo, '\.[^\.]*$', '')
                        Return $sFileInfo
                Case $Sflag = 0 ;给出文件名包含扩展名
                        $sFileInfo = StringRegExpReplace($spath, '.+\\', '')
                        Return $sFileInfo

                Case Else
                        Return False
        EndSelect

EndFunc   ;==>_GetFileInfo
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-22 09:05 , Processed in 0.080754 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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