Взяв строку примерно так:
Line 1: Test TableA
Line 2: TableA AWord
Line 3: TableA AWord
Line 4: This.TableA
Line 5: This. TableA Aword
Я хочу соответствовать при соблюдении следующих критериев:
- Слово Таблица A найдено
- В той же строке, где находится таблица A, нет ни одной точки.
- Может быть любое количество пробелов или других символов перед словом TableA
- Могут быть символы. после слова TableA
Таким образом, в приведенном выше сценарии:
- Строки 1,2 и 3 должны совпадать - но ТОЛЬКО для слова TableA
- Строки 4 и 5 НЕ должны совпадать с
У меня возникли серьезные проблемы с тем, чтобы это сработало.
-
Это соответствует каждой строке, кроме # 3- и соответствует от начала строки до конца таблицы A
^([^\.].*)(?:TableA)
-
Это соответствует строке 1,2,3 & 5 и для 1 &2 он соответствует от начала строки до конца таблицы A
(?!\.).(\s)*(TableA)(?=\s|$)
-
Это соответствует 1,2,3 (ближе всего кбуровая установкаht answer), но соответствует от начала строки до конца таблицыA
^(?!.*\.).*(TableA)
Этот поток: Регулярное выражение: Соответствие слову, не содержащему Содержит решение, котороеделает очень похожую вещь на то, что мне удалось вывести, но опять же, он соответствует каждому символу перед найденным конкретным словом.
Это в PowerShell - так что я считаю, что PCRE эффективно использует то, что использует (?)