PowerShell String对象方法小结

 更新时间:2015年07月08日 12:40:07   投稿:mdxy-dxy  
这篇文章主要介绍了PowerShell String对象方法,需要的朋友可以参考下

从之前的章节中,我们知道PowerShell将一切存储在对象中,那这些对象中包含了一系列中的称之为方法的指令。默认文本存储在String对象中,它包含了许多非常有用的处理文本的命令。例如,要确定一个文件的扩展名,可以使用LastIndexOf()获取最后一个字符“.”的位置,继续使用Substring()获取扩展名子串。

PS> $path = "C:\prefs.js" 
PS> $path.Substring( $path.LastIndexOf(".")+1 ) 
Js

另外一条途径,使用Split方法,对文件的完整名称进行分割,得到一个字符串数组,取最后一个元素,PowerShell中可以通过索引-1来获取数组中最后一个元素。

PS> $path.Split(".")[-1] 
Js

下面的表格会给出String对象的所有方法:

函数 描述 示例
CompareTo() 与另一个字符串比较 (“Hello”).CompareTo(“Hello”)
Contains() 是否包含制定子串 (“Hello”).Contains(“ll”)
CopyTo() 拷贝子串至新字符串中 $a = (“HelloWorld”).toCharArray()(“User!”).CopyTo(0,

$a, 6, 5)$a

EndsWith() 是否以制定子串结尾 (“Hello”).EndsWith(“lo”)
Equals() 是否与另一个字符串相同 (“Hello”).Equals($a)
IndexOf() 返回第一次匹配的所索引 (“Hello”).IndexOf(“l”)
IndexOfAny() 返回字符串中任意字符的首次匹配索引 (“Hello”).IndexOfAny(“loe”)
Insert() 在指定位置插入字符串 (“HelloWorld”).Insert(6,”brave “)
GetEnumerator() 枚举字符串中所有字符 (“Hello”).GetEnumerator()
LastIndexOf() 字符的最后匹配位置 (“Hello”).LastIndexOf(“l”)
LastIndexOfAny() 任意字符的最后匹配位置 (“Hello”).LastIndexOfAny(“loe”)
PadLeft() 左边补齐空白是字符串至指定长度 (“Hello”).PadLeft(10)
PadRight() 右边填充空白是字符串至指定长度 (“Hello”).PadRight(10) + “World!”
Remove() 从指定位置开始移除指定长度 (“PsTips”).Remove(2,2)
Replace() 替换指定字符串 (“PsTips”).replace(“Ps”,”PS1″)
Split() 以指定分隔符切割字符串 (“HelloWorld”).Split(“l”)
StartsWith() 是否以指定子串开始 (“HelloWorld”).StartsWith(“He”)
Substring() 从指定位置取指定长度子串 “HelloWorld”).Substring(4,3)
ToCharArray() 转换成字符数组 (“HelloWorld”).toCharArray()
ToLower() 转换成小写 (“HelloWorld”).toLower()
ToLowerInvariant

()

以区域规则转换成小写 (“HelloWorld”).ToUpperInvariant()
ToUpper() 转换成大写 (“HelloWorld”).ToUpper()
ToUpperInvariant

()

以区域规则转换成大写 (“HelloWorld”).ToUpperInvariant

()

Trim() 移除字符串前后空格 (” HelloWorld “). Trim()
TrimEnd() 移除字符串结尾的空格 (“HelloWorld “). TrimEnd()
TrimStart() 移除字符串开始的空格 (” HelloWorld”). TrimStart()
Chars() 返回指定位置的字符 (“Hello”).Chars(0)

以Split()为例来分析方法

在之前的章节中,我们已经知道可以通过Get-Member来查看一个对象中包含了那些可以被调用的方法。正好最为一个简单的回顾,来查看Split的定义。

PS C:\> ("jb51.net" | Get-Member Split).definition 
string[] Split(Params char[] separator), string[] Split(char[] separator, int count), string[] Split(char[] separator, System.StringSplitOptions options), string[] Split(char[] separator, int count, System.StringSplitOptions options), string[] Split(string[] separator, System.StringSplitOptions options), string[] Split(string[] sepa 
rator, int count, System.StringSplitOptions options)

Define属性可以获取方法参数定义,但是可读性比较坑爹。我们仍然用上面表格中的Replace方法,将分隔符稍作替换,即可增强可读性。

PS C:\> ("jb51.net" | Get-Member Split).definition.Replace("), ", ")`n")
string[] Split(Params char[] separator)
string[] Split(char[] separator, int count)
string[] Split(char[] separator, System.StringSplitOptions options)
string[] Split(char[] separator, int count, System.StringSplitOptions options)
string[] Split(string[] separator, System.StringSplitOptions options)
string[] Split(string[] separator, int count, System.StringSplitOptions options)

之前说过反引号,类似高级语言中的转义符反斜杠。

从上面的输出可以发现Split有6种不同的调用方法,而之前可能更多的只使用过一个参数的方法。PowerShell在处理文本时,可能会碰到多个分隔符,而Split方法调用只须一次即可。

PS C:\> "https://www.jb51.net".split(":./")
http

www
pstips
net

中间有空白,咋整,能移除吗,StringSplitOptions轻装上阵:

PS C:\> "https://www.jb51.net".split(":./",[StringSplitOptions]::RemoveEmptyEntries)
http
www
pstips
net

之前有一个小算法题,移除字符串中相邻的重复的空格。在不考虑效率的前提下,可以使用Split先分割,分割后再将得到的元素以指定分隔符拼接。但是拼接用到的Join方法,并不属于string对象,而属于String类,也正是下面要讲的。

Text and Regular Expressions

原文: https://www.jb51.net/string-object-methods.html

相关文章

  • PowerShell实现批量重命名文件

    PowerShell实现批量重命名文件

    这篇文章主要介绍了PowerShell实现批量重命名文件,本文直接给出实现代码,需要的朋友可以参考下
    2015-04-04
  • PowerShell把IP地址转换成二进制的方法

    PowerShell把IP地址转换成二进制的方法

    这篇文章主要介绍了PowerShell把IP地址转换成二进制的方法,在一些IP判断的场合经常使用的小技巧,需要的朋友可以参考下
    2014-08-08
  • PowerShell中使用curl(Invoke-WebRequest)的方法教程

    PowerShell中使用curl(Invoke-WebRequest)的方法教程

    这篇文章主要给大家介绍了关于在PowerShell中使用curl(Invoke-WebRequest)的方法教程,文中通过详细的示例代码给大家介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-08-08
  • PowerShell管道入门必看篇(管道例子大全)

    PowerShell管道入门必看篇(管道例子大全)

    下面小编就为大家带来一篇PowerShell管道入门必看篇(管道例子大全)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Windows Powershell 定义变量

    Windows Powershell 定义变量

    本文主要描述了Windows Powershell 变量的相关知识,非常的详尽,是一篇不可多得的文章,希望对大家理解powershell的变量有所帮助
    2014-09-09
  • PowerShell小技巧之尝试ssh登录

    PowerShell小技巧之尝试ssh登录

    由于Linux登录大多是通过SSH的模式进行登录的,渗透测试时扫描到22端口监听有SSH,如果能有脚本可以基于字典对Linux进行用户名和密码的尝试,将会在渗透测试时起到很重要的作用。本文中将会向大家介绍如何通过PowerShell尝试Linux SSH登录。
    2014-10-10
  • Powershell小技巧之获取当前的时间并转换为时辰

    Powershell小技巧之获取当前的时间并转换为时辰

    这篇文章主要介绍了使用Powershell获取当前的时间并转换为时辰的方法,非常简单实用,有需要的朋友可以参考下
    2014-09-09
  • PowerShell时间记录脚本

    PowerShell时间记录脚本

    这篇文章主要介绍了PowerShell时间记录脚本的相关资料,非常简单实用,需要的朋友可以参考下
    2015-09-09
  • PowerShell显示隐藏文件和系统文件的方法

    PowerShell显示隐藏文件和系统文件的方法

    这篇文章主要介绍了PowerShell显示隐藏文件和系统文件的方法,重点在于对文件、文件夹属性的介绍,需要的朋友可以参考下
    2014-08-08
  • PowerShell中把相对路径转换为绝对路径的2个方法

    PowerShell中把相对路径转换为绝对路径的2个方法

    这篇文章主要介绍了PowerShell中把相对路径转换为绝对路径的2个方法,并对他的区别做了讲解,需要的朋友可以参考下
    2014-08-08

最新评论