Управляющие символы в последовательности строк - PullRequest
0 голосов
/ 02 января 2019

Строка ищется

"столкнулся с (что-то большим) проблемами, что-то еще, бла-бла, см. Файл журнала:"

Шаблон должен найти "(что-то большое) проблем" точноподстрока, если она существует.

Как разрешить парены в шаблоне регулярных выражений

Этот шаблон, который я пробовал, не работает

\b\(something-big\) issues\b

например.

$str2 = "ran into (something-big) issues do something else bla bla, see log file: ";


if($str2 -match '\b\(something-big\) issues\b' ) {
    Write-Output "we found it";    
}
else{
    Write-Output "nope";
}   

1 Ответ

0 голосов
/ 02 января 2019

Ваш шаблон регулярного выражения правильно возвращает $false для вашего ввода из-за:

'\b\(something-big\) issues\b'
# ^ this guy

( не является символом слова и не является пробелом , который предшествует ему, поэтому индекс ( на самом деле не является границей слова - удалите первый \b и это сработает:

$str2 -match '\(something-big\) issues\b'

Если вы хотите совпадать только в том случае, если перед (something-big) присутствует несловесный символ, используйте символ отрицания \W (обратите внимание W в верхнем регистре):

$str2 -match '\W\(something-big\) issues\b'

или используйте отрицательный взгляд сзади:

$str2 -match '(?<!\w)\(something-big\) issues\b'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...