正在搜索的字符串
”遇到了(大)问题,做了其他事情,请参阅日志 文件:“
模式应该找到“(大问题)”确切的子字符串(如果存在)。
我如何在正则表达式模式中允许括号
我尝试过的这种模式失败
\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";
}
答案 0 :(得分:3)
由于以下原因,您的正则表达式模式正确返回了$false
作为输入信息
'\b\(something-big\) issues\b'
# ^ this guy
(
不是文字字符,也不是其前面的空格,因此索引
(
is not actually a word-boundary-删除第一个{{1} },它将起作用:
\b
如果仅当$str2 -match '\(something-big\) issues\b'
前面有非单词字符时才想匹配,请使用否定的单词字符(something-big)
(注意\W
为大写):< / p>
W
或在后面使用否定字眼:
$str2 -match '\W\(something-big\) issues\b'