PowerShell正则表达式核心指南
基础模式匹配
1 | # 简单匹配示例 |
常用操作符对比
方法 | 作用域 | 返回类型 |
---|---|---|
-match | 标量匹配 | 布尔 |
-replace | 替换操作 | 字符串 |
Select-String | 流式处理 | MatchInfo |
典型应用场景
- 日志文件中的错误代码提取
- 配置文件参数值替换
- 结构化文本数据解析
- 输入验证中的格式检查
性能优化建议
1 | # 避免重复编译正则表达式 |
1 | # 简单匹配示例 |
方法 | 作用域 | 返回类型 |
---|---|---|
-match | 标量匹配 | 布尔 |
-replace | 替换操作 | 字符串 |
Select-String | 流式处理 | MatchInfo |
1 | # 避免重复编译正则表达式 |
1 | # 位置参数示例 |
验证类型 | 适用场景 | 错误提示 |
---|---|---|
[ValidateSet] | 限定取值范围 | 明确选项 |
[ValidatePattern] | 正则匹配 | 模式说明 |
[ValidateRange] | 数值范围控制 | 边界提示 |
1 | # 未处理参数缺失错误 |
1 | function Get-UserInfo { |
1 | function Process-Files { |
1 | # 邮箱验证正则 |
字符 | 功能描述 | 示例 |
---|---|---|
. | 匹配任意字符 | a.c → abc |
\d | 匹配数字 | \d{3} → 123 |
\w | 匹配字母数字下划线 | \w+ → abc123 |
^ | 匹配行首 | ^Start |
$ | 匹配行尾 | end$ |
1 | # 日期格式转换 |
1 | # 测量命令执行时间 |
方法 | 适用场景 | 效率提升 |
---|---|---|
管道优化 | 大数据流处理 | 30%-50% |
类型强转 | 频繁类型转换 | 20%-40% |
数组预分配 | 动态集合操作 | 50%-70% |
1 | # 低效的对象属性访问 |
1 | # 字符串拼接优化 |
方法 | 描述 | 示例 |
---|---|---|
Split() | 分割字符串 | ‘a,b,c’.Split(‘,’) |
Replace() | 替换字符 | ‘123-456’.Replace(‘-‘,’’) |
Substring() | 截取子串 | ‘abcdef’.Substring(2,3) |
1 | # 拼接方式效率对比 |
1 | # 显示特殊字符 |
1 | # ForEach循环示例 |
循环类型 | 10万次迭代耗时 | 内存占用 |
---|---|---|
ForEach-Object | 1.2s | 85MB |
For循环 | 0.8s | 45MB |
While循环 | 0.7s | 40MB |
1 | # 设置循环断点 |
1 | # 全局作用域示例 |
修饰符 | 作用范围 | 生命周期 |
---|---|---|
global | 全局可见 | 永久 |
script | 脚本文件内 | 脚本周期 |
private | 当前代码块 | 瞬时 |
local | 默认作用域 | 瞬时 |
1 | # 错误的作用域继承示例 |