字符串操作是powershell中重要的一项操作,学会使用字符串操作的一些常用方法会大大提高脚本编写效率,以下列出几个经常用到的字符串操作方法:


前提:本人的powershell版本是

  

1、字符串格式化

  在说字符串格式化,首先得说单双引号的作用,在powershell中双引号不会屏蔽变量,但单引号会屏蔽,示例如下:

PS C:\> $a = "i have a dream."

PS C:\> Write-Output "this is $a"
this is i have a dream.
PS C:\> Write-Output 'this is $a'
this is $a

  由上述示例我们可以看出,使用单引号会对变量进行转义,而使用双引号则会输出变量的值。

  接下来,再看看字符串格式化的使用,示例如下:  

PS C:\> $a = "i have a dream."

PS C:\> $b = " the variable is $a ,value is {0},there are {1} words" -f $a,4

PS C:\> Write-Output $b
the variable is i have a dream. ,value is i have a dream.,there are 4 words

  字符串格式换中,使用{0},{1},{2}...来代替字符串中变量的位置,-f  后的参数与前面的位置变量相对应。

  接下来我们来探究一下花括号{} 内部的秘密:

秘密一——固定行宽,即指定每次输入的字符长度,不足的空白补全。

PS C:\> $a = "name"

PS C:\> $b = "age"

PS C:\> $c = "sex"

PS C:\> $d = "{0,-15}{1,-15}{2,-15}"

PS C:\> $d = "{0,-15}{1,-15}{2,-15}" -f $a,$b,$c

PS C:\> Write-Output $d
name age sex

  {0,-15}表示的是第一的变量,占位字符总长度是15,“-”代表左对齐

  【注】{位置,±占位总长},其中“+”代表右对齐,“-”代表左对齐

秘密二——将数字转换成百分数

PS C:\> "{0:p}" -f 0.31415926
31.42% PS C:\> "{0:p3}" -f 0.31415926
31.416% PS C:\> "{0:p5}" -f 0.31415926
31.41593%
PS C:\> "{0:p}" -f "1.23"
1.23

  百分数转换是用“p”来表示的,默认保留两位有效数字,若“p”后的数字是5,那么就代表保留五位有效数字。

  注意:百分数的转换针对的是整型和浮点型,不能对字符进行转换。

秘密三——保留几位小数

PS C:\> "{0:n0}" -f 3.1415
3
PS C:\> "{0:n}" -f 3.1415
3.14
PS C:\> "{0:n3}" -f 3.1415
3.142

  n代表要保留几位有效数字,默认是两位有效数字

2、字符串替换

PS C:\> "i have a dream" -replace "dream","apple"
i have a apple PS C:\> "i have a dream" -replace "DREAM","apple"
i have a apple PS C:\> "i have a dream" -creplace "DREAM","apple"
i have a dream PS C:\> "i have a dream" -creplace "dream","apple"
i have a apple

  字符串替换是“-replace”参数,-replace 可以不区分大小写,而-creplace严格按照大小写来匹配。

3、包含

PS C:\> "i have a dream" -match "i"
True PS C:\> "i have a dream" -match "I"
True PS C:\> "i have a dream" -cmatch "i"
True PS C:\> "i have a dream" -cmatch "I"
False 
PS C:\> "i have a dream".Contains("have")
True PS C:\> "i have a dream".Contains("Have")
False

  判断某个字符串是否包含,返回True或False,“-cmatch”严格匹配大小写。

其实-match的作用不止这些,下一节会提到它的扩展。

4、过滤器

PS C:\> "3.1415926" -like "3.14*"
True

  “-like”参数支持基本的正则表达式,*代表任意所有,?代表一个字符,.只代表.

  判断字符串的格式是否符合用户所要求的,如上例,“3.14*”表示已以3.14开头的字符,匹配即为True。

5、字符串分割(将字符串转成列表)

PS C:\> "i have a dream".Split()
i
have
a
dream PS C:\> "i have a dream".Split("a")
i h
ve
dre
m

  split的作用是将字符串中按照某个字符来分割成列表,默认以空格分割,支持多个分隔符

PS C:\> "http://www.baidu.com".Split('./:')
http www
baidu
com

  上述例子是将某个字符以“.” “/” “:”来分割,分割出的结果含有两个空白,原因是“/”和“:”都是分隔符,当分割了“:”后,http会与之后的字符分为两行,此时用需要用“/”来分割,在此基础上再次分割,因此产生了空白行,空白行的取消方法如下:

PS C:\> "http://www.baidu.com".Split('./:',[StringSplitOptions]::RemoveEmptyEntries)
http
www
baidu
com

 6、字符串比较  

PS C:\> "i have a dream ".CompareTo("i have a dream")
1 PS C:\> "i have a dream ".CompareTo("i have a dream ")
0 PS C:\> "i have a dream ".CompareTo("i have a Dream ")
-1

  字符串比较不支持“-CompareTo”,使用方法是“.CompareTo”,严格区分大小写,完全一致才返回“0”。

7、字符串的长度

PS C:\> "i have a dream".Length
14

8、插入新的字符串

PS C:\> "i have a dream".Insert(9,"new ")
i have a new dream

  Insert的使用方法,在某个位置插入什么字符串,字符串的第一个字符的下标是0,从0开始算起,上述例子,在下位为(9+1)的位置插入“new ”字符串

9、删除指定的字符串

PS C:\> "i have a dream".Remove(9,5)
i have a

  同上述例子,下标从0开始,在某个位置删除几个字符。

10、将多个字符串按特定规则组成一个

PS C:\> "i","have","a","dream" -join(" ")
i have a dream

  上述例子是将多个字符串以空格分割组成,同样也可以以其他符合组合,比如:

PS C:\> "10","20","30" -join(":")
10:20:30 

总结

  啊!

  没啥可总结的,用到过来查一下就ok了!

  

  

powershell字符串操作的更多相关文章

  1. PowerShell 字符串操作--转载

    格式化操作符 –F 在PowerShell文本操作符中非常重要,经常被用来增强数字类型和日期类型的可读性: "{0} diskettes per CD" -f (720mb/1.4 ...

  2. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

  3. shell编程常用的截取字符串操作

    1.          常用的字符串操作 1.1.           替换字符串:$ echo ${var/ /_}#支持正怎表达式 / /表示搜索到第一个替换,// /表示搜索到的结果全部替换. ...

  4. php字符串操作集锦

    web操作, 主要就是对字符文本信息进行处理, 所以, 字符串操作几乎占了很大一部分的php操作.包括 注意strstr 和 strtr的区别? 前者表示字符串查找返回字符串,后者表示字符串中字符替换 ...

  5. java 字符串操作和日期操作

    一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; ...

  6. [No000078]Python3 字符串操作

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- '''Python 字符串操作 string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分 ...

  7. Python 字符串操作及string模块使用

    python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...

  8. C语言字符串操作总结大全

    1)字符串操作 strcpy(p, p1)  复制字符串  函数原型strncpy(p, p1, n)   复制指定长度字符串  函数原型strcat(p, p1)   附加字符串  函数原型strn ...

  9. c# 字符串操作

    一.字符串操作 //字符串转数组 string mystring="this is a string" char[] mychars=mystring.ToCharArray(); ...

随机推荐

  1. python的pandas库读取csv

    首先建立test.csv原始数据,内容如下 时间,地点 一月,北京 二月,上海 三月,广东 四月,深圳 五月,河南 六月,郑州 七月,新密 八月,大连 九月,盘锦 十月,沈阳 十一月,武汉 十二月,南 ...

  2. java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

    java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at java.net.URLClassLoader.findClass(URLC ...

  3. Echo团队Alpha冲刺 - 总结随笔

    班级:软件工程1916|W 作业:项目Alpha冲刺(团队) 团队名称:Echo 作业目标:完成项目Alpha冲刺 评审表:腾讯文档 Alpha冲刺随笔集合 目录 团队博客汇总 项目预期计划及完成情况 ...

  4. PS——使用切片工具切出透明图片

    前言 最近有点烦,不说话~ 步骤 首先要保证您的格式为PSD且底色为透明 参考线 标出参考线,方便后面划分 切图 保存 效果

  5. JAVA添加WORD文档批注

    本文将介绍在Java程序中如何给Word文档中的指定字符串添加批注.前文中,主要介绍的是针对某个段落来添加批注,以及回复.编辑.删除批注的方法,如果需要针对特定关键词或指定字符串来设置批注,可以参考本 ...

  6. 使用mybatis框架实现带条件查询-多条件(传入实体类)

    在实际的项目开发中,使用mybatis框架查询的时候,不可能是只有一个条件的,大部分情况下是有多个条件的,那么多个条件应该怎样传入参数: 思考:  需求:根据用户姓名(模糊查询),和用户角色对用户表进 ...

  7. 《vue》实现动态显示与隐藏底部导航方法!

    在日常项目中,总有几个页面是要用到底部导航的,总有那么些个页面,是不需要底部导航的,这里列举一下页面底部导航的显示与隐藏的两种方式: 其实很简单,我们在路由里面带上参数,这个参数就用来区分那个页面显示 ...

  8. Sliding Window Matrix Maximum

    Description Given an array of n * m matrix, and a moving matrix window (size k * k), move the window ...

  9. 实训作业6 (数据I/O)

    1. 文件输出流的应用. 定义如下字符串: String str = “12345abcdef@#%&*软件工程”; 编写程序将该字符串写入文件”data.txt”. import java. ...

  10. WinDbg常用命令系列---!envvar

    !envvar 简介 !envvar扩展命令显示特定环境变量的值. 使用形式 !envvar Variable 参数 Variable指定显示其值的环境变量.变量不区分大小写. 环境 Windows ...