可以说我有这样的字符串:
foo
}
bar}
}
{baz}
我只想匹配位于行开头或前面有空格(例如一个或多个 tab
字符)的右大括号。
因此,对于上面的示例,只应选择第 2 行和第 4 行的大括号(从 1 开始计数)
第一次尝试似乎只是突出显示第 2 行的右大括号,第 4 行的大括号未被选中:
"foo
}
bar}
}
{baz}" |Select-String "\n\s?\}" -AllMatches
我尝试使用 使空白标记成为可选?
,但随后第 2 行的大括号被取消选择:
"foo
}
bar}
}
{baz}" |Select-String "\n\s+?\}" -AllMatches
-replace
嗯...我很确定我现在用or会成功,-match
但我真的需要掌握Select-String
.
使用内联选项
(?m)
使^
(和)匹配每行$
的开始(和结束)。用于
[ \t]*
匹配任何零个或多个(*
) 空格或制表符 ([ \t]
)\s*
为了匹配所有空白字符,可能会跨行匹配,因为换行符也是空白。