我有散布在整个文件名称的文本。文件名出现在这样的文字:正则表达式匹配不以子串开头的文本?
|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