代码之家  ›  专栏  ›  技术社区  ›  Steven

与不以子字符串开头的文本匹配的正则表达式?

  •  3
  • Steven  · 技术社区  · 15 年前

    我有文件名分散的文本。文件名显示在如下文本中:

    |test.txt|
    |usr01.txt|
    |usr02.txt|
    |foo.txt|
    

    我想匹配不以开头的文件名 usr . 我想出了 (?<=\|).*\.txt(?=\|) 匹配文件名,但不排除以 美国陆军 . 正则表达式可以这样做吗?

    3 回复  |  直到 15 年前
        1
  •  7
  •   Tim Pietzcker    15 年前
    (?<=\|)(?!usr).*\.txt(?=\|)
    

    你就快到了:)

    现在你有一个积极的展望,一个积极的和消极的展望。

        2
  •  1
  •   YOU    15 年前

    用蟒蛇

    >>> import re
    >>>
    >>> x="""|test.txt|
    ... |usr01.txt|
    ... |usr02.txt|
    ... |foo.txt|
    ... """
    >>>
    >>> re.findall("^\|(?!usr)(.*?\.txt)\|$",x,re.MULTILINE)
    ['test.txt', 'foo.txt']
    
        3
  •  -1
  •   ghostdog74    15 年前
    grep -v "^|usr" file
    
    awk '!/^\|usr/' file
    
    sed -n '/^|usr/!p' file