用PowerShell对字符串处理
%x="abcd" |
我们需要这么多种办法嘛??我觉得一种就够了. PowerShell中, 调用字符串长度的属性就可以返回字符串长度了, 如下:
PS C:\> "abcd" |
PowerShell看起来是不是更加的清楚呢?
2. 我们接下来看看shell中 查找子串:
%expr index $x "a" |
expr返回的数组下标是从1开始计数的. 看看PowerShell怎么应付呢?
PS C:\> $x="abcd" |
OK, PowerShell的数组下标和大部分编程语言一致, 数组下标是从0开始计算的.
3. 在Shell中得到子字符串:
# 方法一 |
来看看PowerShell的Substring方法吧
PS C:\> $x + $x. Substring( <<<< 0, 6) |
PowerShell不允许在对字符串操作过程中, 出现越界的情况. 因此其中一个例子给出了错误信息. 但是接下来我使用trap关键字, 将执行的异常捕获. 因此, 这次操作就什么都没有输出.
4. shell中匹配正则表达式:
# 打印匹配长度 |
这里可以看到, expr支持正则表达式, 匹配后给出了匹配的长度. 我们看看PowerShell内置的正则表达式运算符:
PS C:\> $x -match '.'; $matches[0]; ($matches[0]).length |
这里三个语句都发出了自己的执行结果, -match操作符返回bool值, 提示是否匹配成功. 如果匹配成功可以通过访问$matches这个hashtable获得返回情况. 默认整个正则表达式匹配的信息被放在key = 0的位置. 如果匹配不成功, $matches的信息是不会被更新的. 这些行为和Perl几乎一样. 熟悉Perl的朋友是不是觉得这个地方很自然??相比使用expr, 虽然这里复杂了一些, 但是功能确强大了很多.
5. 在Shell中对字符串的掐头去尾
%x=aabbaarealwwvvww |
哎呀, 这个奇怪的表达式, 看起来让人费解呢...>_<看看-replace运算符是如何工作的吧^^
PS C:\> $x = 'aabbaarealwwvvww' |
你会用正则表达式嘛??如果你会, 那么上面的操作, 用正则表达式表示不是很简单嘛?
6. 在Shell中字符串的替换
这里不允许使用regex呢..不过可以用*,?...
%x=abcdabcd |
第一个例子用PowerShell好像不容易呢...因为-replace是整行匹配的. 这点上不如Perl的s:::功能强大. 我先给出第二个的办法...^^也许以后会想到好办法呢
PS C:\> $x='abcdabcd' |
写到这里, 我想大家也能感受到PowerShell的一些特性, 正如我的理解, 所有.Net程序员, 天生对PowerShell中大部分功能是非常熟悉的. 可以直接调用.Net上的方法, 为PowerShell扩展了强大的功能.
我再给几个比较有意思的功能:
PS C:\> $x |
Trim是个常见的功能, 还有TrimStart, TrimEnd. ToUpper, ToLower更是很方便的功能.
阅读更多- [原创]用PowerShell对字符串处理
- powershell 字符串处理提取
- Powershell 字符串处理案例
- Powershell 字符串处理
- Nginx源码分析--字符串处理
- Objective-C字符串处理
- 字符串处理-统计字符数
- shell不得不知的“内置字符串处理”
- HDU 1039 字符串处理
- oracle函数大全-字符串处理函数
- 湖南省赛6--第2题 弟弟的作业 字符串处理
- 07-String类型转换为整型(字符串处理)
- php字符串处理函数
- 字符串处理(6)字符串缓存类StringBuffer
- 【shell基础】11、数组初步及字符串处理
- python处理u开头的字符串
- java 编译时对于字符串用+号相连的处理
- HDU 1048 字符串处理
- java字符串格式化处理技巧
- sqlserver字符串处理函数