刚刚让chatgpt写几个平衡组示例, 但是执行结果都是错的, 求路过大佬改正
也第一次看到正则表达式可以多行表示, 而且行尾还能加注释, C#不能这样玩吧- $pattern = @"
- \(
- (?> # 开始一个平衡组
- [^()]+ # 匹配除了括号以外的任意字符
- | # 或者
- (?<paren>\() # 匹配左圆括号并将其压入名为paren的平衡组中
- | # 或者
- (?<-paren>\)) # 匹配右圆括号并将其弹出名为paren的平衡组中
- )* # 重复上述步骤多次
- (?(paren)(?!)) # 如果paren平衡组不为空,则匹配失败
- \)
- "@
-
- $text = "This is (a (test) string) with (nested (parentheses))."
- $matches = [regex]::Matches($text, $pattern)
- foreach ($match in $matches) {
- Write-Host $match.Value
- }
复制代码
|