我有散佈在整個文件名稱的文本。文件名出現在這樣的文字:正則表達式匹配不以子串開頭的文本?
|test.txt|
|usr01.txt|
|usr02.txt|
|foo.txt|
我想匹配不usr
啓動文件名。我想出了(?<=\|).*\.txt(?=\|)
以匹配文件名,但它不排除以usr
開頭的那些文件名。這是正則表達式可能嗎?
我有散佈在整個文件名稱的文本。文件名出現在這樣的文字:正則表達式匹配不以子串開頭的文本?
|test.txt|
|usr01.txt|
|usr02.txt|
|foo.txt|
我想匹配不usr
啓動文件名。我想出了(?<=\|).*\.txt(?=\|)
以匹配文件名,但它不排除以usr
開頭的那些文件名。這是正則表達式可能嗎?
(?<=\|)(?!usr).*\.txt(?=\|)
你幾乎有:)
現在你有一個積極的回顧後,和一正一負前瞻。
與Python
>>> import re
>>>
>>> x="""|test.txt|
... |usr01.txt|
... |usr02.txt|
... |foo.txt|
... """
>>>
>>> re.findall("^\|(?!usr)(.*?\.txt)\|$",x,re.MULTILINE)
['test.txt', 'foo.txt']
grep -v "^|usr" file
awk '!/^\|usr/' file
sed -n '/^|usr/!p' file
我掙扎了一會兒,只用一個後視與此..訣竅是使用組合。先生,幹得好。 – Gishu 2010-03-21 09:03:25