猎英夜客 发表于 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

不管怎样输入目录,我都要获得最后的子目录的名称

h20040606 发表于 2010-10-22 12:57:56

用StringSplit()函数可以实现

afan 发表于 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))

www378660084 发表于 2010-10-23 13:22:44

用"\"把字符创分开,然后找数组最后一个元素。

chenronting 发表于 2010-10-23 13:30:12

回复 1# 猎英夜客


    其实你这个可以用3#的方法, 不一定要用正则, 要考虑到自己的实际情况。 用简单的方法能行,尽量用简单的。以后也好查错

19377708 发表于 2010-10-24 03:33:18

支持楼上!说得有道理!

netegg 发表于 2010-10-27 08:06:29

没必要什么都弄的那么麻烦,正则是快,不过用不好出问题更麻烦,不如用stringsplit了,结果出来的和正则拆完了一样,都是数组

maxkingmax 发表于 2010-10-27 13:32:41

http://www.autoitx.com/forum.php?mod=viewthread&tid=8157&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
页: [1]
查看完整版本: 怎样取得某个路径的目录名称??[求个正则表达式]