Как исключить из совпадения, если подстрока другой строки - PullRequest
1 голос
/ 15 января 2009

У меня проблема. Я хотел бы сопоставить все вхождения \ t в моем тексте (и под \ t я имею в виду буквально, что это не символ табуляции), но я бы хотел исключить совпадение, если оно является частью строки \ t Как это сделать?

Пример

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

Я бы хотел сопоставить \ t в первой строке, но не во второй строке (так как это часть \\ т).

Возможно ли это с помощью регулярных выражений?

Ответы [ 4 ]

1 голос
/ 15 января 2009
/\\t\b/

\b соответствует границе слова (переход от словесного символа к словесному или наоборот).

1 голос
/ 15 января 2009

Вы должны более точно определить, что вы подразумеваете под «частью строки». Например, вы могли бы иметь в виду: не совпадать с \ t, если за ним следует больше буквенно-цифровых символов или косой черты. Таким образом, это станет (в Perl):

  \\t(?![\w\\])
0 голосов
/ 15 января 2009

Другой подход: сопоставить что угодно, кроме обратной косой черты, сопоставить обратную косую черту и сопоставить символ "t".

/[^\\](\\t)/
0 голосов
/ 15 января 2009

Вам нужно будет точно определить, в каких случаях a \ t должно совпадать, а в каких - нет, прежде чем можно будет определить регулярное выражение для него. Похоже, ваше текущее определение относится к разновидности «Я узнаю это, когда увижу», чего недостаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...