如何从匹配中排除另一个字符串的子字符串

时间:2009-01-15 16:25:28

标签: regex

我有问题。我想在我的文本中匹配所有出现的\ t(并且\ t我的意思是它实际上它不是制表符)但是如果它是\ t字符串的一部分我想排除匹配。怎么做?

实施例

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

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

这是否可以使用正则表达式?

4 个答案:

答案 0 :(得分:1)

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

  \\t(?![\w\\])

答案 1 :(得分:1)

/\\t\b/

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

答案 2 :(得分:0)

在可以为它确定正则表达式之前,您需要准确定义\ t应该匹配哪些情况以及哪些情况不应该匹配。你现在的定义似乎是“当我看到它时我会知道它”变种,这还不够。

答案 3 :(得分:0)

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

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