我相信我需要的正則運算式可以在任何語言中使用,但我會將它用于 VB.Net。我需要它獲取檔案名以及它所在的目錄。我只需要它從“A:\TEST2-maybe1\TEST-couldbe1\FINAL-word”中捕獲“TEST-couldbe1\FINAL-word.txt”。文本檔案”。我嘗試過的所有內容都捕獲了冒號之前的所有內容或僅包含 \ 的檔案名。我擁有的最佳代碼如下,感謝您的幫助。
\\(?:.(?!\\)) $
uj5u.com熱心網友回復:
我根本不會使用正則運算式。該System.IO命名空間包含所有必需功能。以下代碼滿足您的需求:
Dim fullpath As String = "A:\TEST2-maybe1\TEST-couldbe1\FINAL-word.txt"
Dim fileName As String = IO.Path.GetFileName(fullpath)
Dim fullDir As String = IO.Path.GetDirectoryName(fullpath)
Dim fullParentDir As String = IO.Path.GetDirectoryName(fullDir)
Dim finalStr As String = $"{fullDir.Substring(fullParentDir.Length 1)}{IO.Path.DirectorySeparatorChar}{fileName}"
uj5u.com熱心網友回復:
你能試試這個嗎?
\w\\([.\w\\-] )
輸入
A:\TEST2-maybe1\TEST-couldbe1\FINAL-word.txt
輸出

試試https://regex101.com/r/rwy8o6/1
uj5u.com熱心網友回復:
\\(?:.(?!\\)) $您嘗試的模式匹配\任何字符,然后 1 次,除了\
這樣它就不會匹配前導之前的內容,\因此您可以使用否定字符類添加匹配:
[^\\] \\(?:.(?!\\)) $
但是這個模式包含一個叫做緩和貪婪令牌的部分,(?:.(?!\\)) 這使得它的性能成本很高,并且可以使用否定字符類來撰寫:
[^\\] \\[^\\] $
正則運算式演示
或者更具體地說,在檔案名中加一個點:
[^\\] \\[^\\] \.[^\\.] $
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/388603.html
上一篇:C#到VB.net委托轉換
下一篇:我可以使用“撥號”來選擇日期嗎?
