`

字符串处理

    博客分类:
  • bash
 
阅读更多
字符串长度(String Length)
${#string}
expr length $string
expr "$string" : '.*'

匹配的最小子串的长度(Length of Matching Substring at Beginning of String)
expr match "$string" '$substring'          # $substring is a regular expression
expr "$string" : '$substring'              # $substring is a regular expression

索引(Index)
expr index $string $substring              # 匹配的第一个子串在主串中的位置,String.indexOf(substring)

提取子串(Substring Extraction), $string是”*”或”@”,则表示参数列表
${string:position}                         # String.substring(position)

${string:position:length}                  # String.substring(position, position+length)

expr substr $string $position $length      # String.substring(position-1, position+length-1)
                                           # ugly, messy, get out, scram!

expr match "$string" '\($substring\)'      # matched substring at beginning of string 

expr "$string" : '\($substring\)'          # matched substring at beginning of string 

expr match "$string" '.*\($substring\)'    # matched substring at ending of string 
expr "$string" : '.*\($substring\)'        # matched substring at ending of string 
        
eg: stringZ="abc123ABC987"
expr match $stringZ '[a-z]*'           # 3
expr match $stringZ '\([a-z]*\)'       # abc

expr $stringZ : '[a-z0-9]*'            # 6
expr $stringZ : '\([a-z0-9]*\)'        # abc123

expr match $stringZ '.*\([A-Z]\+\)'    # C
expr $stringZ : '.*\([0-9]\{2\}\)'     # 87


删除子串(Substring Removal)
${string#substring}                   # 删除最前面匹配$substring的最短的子串
${string##substring}                  # 删除最前面匹配$substring的最长的子串
${string%substring}                   # 删除最后面匹配$substring的最短的子串
${string%%substring}                  # 删除最后面匹配$substring的最长的子串

# 掐头,键盘上 # 在 $ 左面
% 掐尾,键盘上 % 在 $ 右面
单个最小匹配,两个最大匹配

eg: stringZ="abc123ABC987CBA321cba"
echo ${stringZ#a*C}                   # 987CBA321cba
echo ${stringZ##a*C}                  # BA321cba

echo ${stringZ%C*a}                   # abc123ABC987
echo ${stringZ%%C*a}                  # abc123AB


替换子串(Substring Replacement)
${string/substring/replacement}        # 把第一个匹配的$substring替换为$replacement
${string//substring/replacement}       # 把所有匹配的$substring替换为$replacement
${string/#substring/replacement}       # 如果主串开头匹配$substring则用$replacement替换它
${string/%substring/replacement}       # 如果主串结尾匹配$substring则用$replacement替换它

eg: stringZ="abc123ABC987CBA321cba"
echo ${stringZ/a/z}                  # zbc123ABC987CBA321cba
echo ${stringZ//B/_}                 # abc123A_C987C_A321cba
echo ${stringZ/#abc/xyz}             # xyz123ABC987CBA321cba
echo ${stringZ/%321[a-c]*/x}         # abc123ABC987CBAx


参数扩展:
${parameter-default}                 # parameter没声明, 使用default
${parameter:-default}                # parameter没设置, 使用default

${parameter=default}                 # parameter没声明, 把设为default
${parameter:=default}                # parameter没设置, 把它为default

${parameter+alt_value}               # parameter已声明, 使用alt_value, 否则使用null字符串.
${parameter:+alt_value}              # parameter已设置,使用alt_value, 否则使用null字符串.

eg:
echo ${username}                     # null
echo ${username-`whoami`}            # root

username=
echo ${username-`whoami`}            # null
echo ${username:-`whoami`}           # root

unset username
echo ${username=eli}                 # eli
echo $username                       # eli

username=
echo ${username=eli}                 # null
echo ${username:=eli}                # eli
echo $username                       # eli

unset username
echo ${username+nana}                # null

username=
echo ${username+jack}                # jack
echo ${username:+jack}               # null

username=micheal
echo ${username+jack}                # jack
echo ${username:+jack}               # jack

 

分享到:
评论

相关推荐

    纯C++ 字符串处理函数大全源码

    这个"纯C++ 字符串处理函数大全源码"正是为了满足这种需求而设计的,它包含了作者自定义封装的一系列字符串操作函数。 首先,`StringProcess.cpp`和`StringProcess.h`是C++中的源代码文件和头文件。`.cpp`文件通常...

    字符串处理通用程序汇编语言

    《字符串处理通用程序汇编语言》 在计算机编程中,字符串处理是一项基本且重要的任务,涉及到文本数据的查找、删除、替换以及插入等操作。本文将深入探讨如何使用汇编语言实现这些功能,并分析相关寄存器的作用和...

    java字符串处理输入一个字符串和一个字符后,原字符串中所有该字符将被删除并显示出结果

    在Java编程语言中,字符串处理是一项基础且重要的任务。在这个特定的场景中,我们需要创建一个Applet程序,它能够接收用户输入的字符串和一个字符,然后从原始字符串中删除所有出现的指定字符,并显示处理后的结果。...

    被爱可被爱以字符串处理工具 1.7.1

    被爱可以字符串处理工具由中国被爱可以在线站长Bicyle开发,是一款字符串处理的绿色工具软件,它具有繁简体转换 、URL和HTML编码转换、字母大小写转换、邮件地址分组、半全角转换、区位码和ASCII码查询,WAP文档UTF-...

    汇编字符串处理

    ### 汇编语言中的字符串处理技术解析 在计算机编程领域,尤其是在低级语言如汇编语言中,字符串处理是一项核心技能,它涉及到对字符序列的搜索、替换、删除及插入等操作。本文将深入探讨汇编语言中字符串处理的关键...

    字符串处理系统课程设计.doc

    字符串处理系统课程设计 在这个课程设计中,我们将学习如何设计和实现一个字符串处理系统,该系统具有字符串赋值、字符串长度计算、字符串复制、字符串比较、字符串查找、字符串插入和字符串删除等功能。这个系统...

    C++字符串处理类库及范例

    在C++编程中,字符串处理是一项至关重要的任务,它涉及到数据的输入、输出以及操作。C++标准库提供了丰富的工具来处理字符串,但有时我们还需要更高效或特定功能的库来增强我们的代码。"C++字符串处理类库及范例...

    excel vba字符串处理大全

    Excel VBA字符串处理大全 VBA 中的字符串可以分为两类:固定长度的字符串和动态字符串。固定长度的字符串声明时包含指字的字符数,例如 `Dim strFixedLong As String*100`,总是只包含 100 个字符,但字符串最长不...

    C++字符串处理大集合

    C++字符串处理大集合 在 C++ 中,字符串处理是非常重要的一部分,对于初学者来说,掌握字符串处理函数是非常必要的。下面我们将对 C++ 中的字符串处理函数进行详细的介绍。 C 语言字符串处理函数 1. 字符串长度:...

    被爱可以字符串处理工具注册机

    在IT行业中,字符串处理工具是程序员和数据分析师日常工作中不可或缺的一部分。这些工具帮助用户进行文本操作,例如查找、替换、格式化、加密和解密等。"被爱可以字符串处理工具"显然是一款专为此目的设计的软件,它...

    字符串处理函数列表,字符串处理函数列表

    字符串处理函数是编程语言中非常重要的工具,它们用于操作、分析和操纵文本数据。以下是一些常见的字符串处理函数,这些函数通常在C语言或其他类似语言中使用,虽然这里没有提供具体的编程语言环境,但理解这些函数...

    DB2字符串处理 字符串处理 db2 函数

    DB2 字符串处理函数 DB2 中的字符串处理函数可以分为多种类型,包括字符转换函数、去空格函数、取子串函数、字符串比较函数和字符串操作函数等。 一、字符转换函数 * ASCII() 函数:返回字符表达式最左端字符的 ...

    字符串处理函数

    ### 字符串处理函数:C与C++的深入解析 #### C++字符串处理:`string`类的强大功能 在现代编程领域,字符串处理是不可或缺的一部分,尤其在C++中,`string`类提供了丰富的功能来简化字符串操作。下面将详细介绍几...

    工具类_字符串处理

    在IT行业中,字符串处理是日常开发中的重要环节,无论是在数据解析、日志记录还是用户交互等场景,都离不开对字符串的操作。本篇主要聚焦于一个名为“工具类_字符串处理”的主题,它通常指的是一个包含多种字符串...

    c++字符串处理汇总

    在C++编程语言中,字符串处理是至关重要的一个部分,涉及到很多函数和方法。这篇总结主要涵盖C++中处理字符串的基本知识点,包括基本概念、常用函数、操作技巧以及一些编程思想。 1. **字符串基本概念** 在C++中,...

    库卡机器人高级字符串处理指令文档

    库卡机器人高级字符串处理指令文档 库卡机器人高级字符串处理指令文档是一份详细的指令文档,旨在提供给库卡机器人用户和开发者,用于了解和掌握高级字符串处理指令的使用方法和技术细节。该文档涵盖了CREAD/CWRITE...

    C#.NET字符串处理增强类

    在C#.NET编程环境中,字符串处理是日常开发中不可或缺的一部分。虽然C#内置了丰富的字符串类`System.String`,提供了一系列强大的方法,如`Substring`、`Replace`、`Trim`等,但在实际项目中,我们往往需要更高效、...

    C++课设字符串处理

    在C++编程语言中,字符串处理是至关重要的一个部分,特别是在进行数据操作、用户交互以及文件处理等场景。本课设旨在让学生熟悉C++中处理字符串的基本方法,模仿系统内置的字符串函数,以提高对C++语言的理解和应用...

Global site tag (gtag.js) - Google Analytics