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

如果另一个字符串的子字符串被排除在匹配之外

  •  1
  • Jagger  · 技术社区  · 17 年前

    我有个问题。我想匹配文本中所有出现的\t(我的意思是它不是制表符),但如果它是\t字符串的一部分,我想排除匹配。如何做到这一点?

    例子

    <HTML>Blah</HTML>\t
    D:\\UserData\\tui
    

    我想在第一行匹配\t,但不想在第二行匹配(因为这是一个 部分\\t)。

    使用正则表达式,这有可能吗?

    4 回复  |  直到 17 年前
        1
  •  1
  •   Adrian Pronk    17 年前
    /\\t\b/
    

    \b 匹配单词边界(从类单词字符到非类单词字符的转换,反之亦然)。

        2
  •  1
  •   j_random_hacker    17 年前

    你必须更精确地定义“字符串的一部分”的含义。例如,您可能意味着:如果后面跟着更多的字母数字或斜线,则不匹配\t。这将变成(在Perl中):

      \\t(?![\w\\])
    
        3
  •  0
  •   nezroy    17 年前

    在确定一个正则表达式之前,你需要准确定义一个\t应该匹配哪些情况,不应该匹配哪些。你目前的定义似乎是“我看到它时就会知道”,这是不够的。

        4
  •  0
  •   wvanbergen    17 年前

    另一种方法:匹配除反斜杠之外的任何内容,匹配反斜杠和匹配“t”字符。

    /[^\\](\\t)/