`

字符串操作

阅读更多
    Bash 所支持的字符串操作的方式多种多样,现记录如下。
    1、获取字符串长度:
    1)${#string} (“${#*}”和“${#@}”表示的是位置参数的个数。另外,对于数组 arr 而言,“${#arr}”表示的是数组中第一个元素的长度,“${#arr[@]}”和“${#arr[* ]}”表示的是数组中元素的个数)
    2) expr length $string
    3) expr "$string" : ".*" (注意:“:”两边有空格,下同)

    2、字符串开头匹配所给正则表达式的子串的长度:
    1)expr match "$string" "$substring" (注意:“substring”是一个正则表达式)
    2)expr "$string" : "$substring" (注意:“substring”是一个正则表达式)

    3、在字符串中找到的任一出现在所给的字符集合中的字符的位置(从 1 开始计数,没有则返回 0,有点类似于 C 语言中的 strchr 函数):
    1)expr index "$string" "$chars"

    4、提取子串:
    1)${string:position} (从位置 position 处开始提取子串。如果 $string 是“*”或者“@”,那么将会提取从位置 position 开始的位置参数,下同)
    2)${string:position:length} (从 position 处开始提取 length 长度的子串)
    注意:这两种写法中下标是从 0 开始的,并且允许 position 为负数,表示从倒数第 $position 的绝对值处开始提取,不过此时 position 和“:”需要以空格隔开,或者将 position 用置于括弧中,如:${string: -4:3},或者:${string:(-4):3}。
    3)expr substr $string $position $length (在 $string 中从 $position 处提取 $length 长度的子串,下标从 1 开始,下同)
    4)expr match "$string" '\($substring\)' (从 $string 的开始位置提取 $substring,其中 $substring 是正则表达式,下同)
    5)expr "$string" : '\($substring\)' (同上,注意“:”两边的空格)
    6)expr match "$string" '.*\($substring\)' (从 $string 的结尾提取匹配正则表达式 $substring 的子串)
    7)expr "$string" : '.*\($substring\)' (同上)

    5、子串削除:
    1)${string#substring} (从 $string 的开头截掉最短匹配的 $substring)
    2)${string##substring} (从 $string 的开头截掉最长匹配的 $substring)
    3)${string%substring} (从 $string 的结尾位置截掉最短匹配的 $substring)
    4)${string%%substring} (从 $string 的结尾位置截掉最长匹配的 $substring)
    注意:这里的 $substring 是 globbing 形式的匹配风格。

    6、子串替换:
    1)${string/substring/replacement} (使用 $replacement 来替换第一个匹配的 $substring)
    2)${string//substring/replacement} (同上,不过是替换所有匹配的 $substring)
    3)${string/#substring/replacement} (若 $substring 匹配 $string 的开头部分,就用 $replacement 替换 $substring,这里的 substring 是 globbing 风格的最长匹配)
    4)${string/%substring/replacement} (同上,不过是匹配 $string 的结尾部分)

    7、变量检测:
    1)${parameter}/$parameter (获取变量 parameter 的值)
    2)${parameter-default} (如果变量 parameter 没被声明,就使用默认值 $default)
    3)${parameter:-default} (如果变量parameter没被声明或值为 null,就使用默认值)
    4)${parameter=default} (如果变量 parameter 没被声明,就使用默认值 $default,同时设置 parameter 的值为 default)
    5)${parameter:=default} (如果变量parameter没被声明或值为 null,就使用默认值,同时设置 parameter 的值为 default)
    6)${parameter+alt_value} (如果设置了变量 parameter,就使用 alt_value,否则为 null)
    7)${parameter:+alt_value} (如果设置了变量 parameter 且为非 null 值,则使用 alt_value,否则为 null)
    8)${parameter?err_msg} (如果已声明变量 parameter,则使用它的值,否则打印 err_msg 错误信息)
    9)${parameter:?err_msg} (如果已声明变量 parameter 且它的值不为 null,则使用它的值,否则答应 err_msg 错误消息)

    8、匹配变量名:
    1)${!str*}/${!str@} (匹配所有之前声明过的以 str 开头的变量名)
分享到:
评论

相关推荐

    易语言字符串操作

    易语言字符串操作源码,字符串操作,字符串_取长度,字符串_取中间,字符串_取左边,字符串_取右边,字符串_替换,到宽字符,到多字节,取文本数据地址,取字节集数据地址,MultiByteToWideChar,WideCharToMultiByte

    C#字符串操作

    ### C#字符串操作详解 #### 一、引言 在C#编程中,字符串操作是一项基本而重要的技能,尤其对于初学者来说更是如此。本文旨在详细介绍C#中的字符串操作技术,帮助读者掌握如何高效地处理字符串。我们将从.NET框架...

    javascript字符串操作

    ### JavaScript字符串操作详解 在JavaScript中,字符串是用于表示文本数据的一种基本数据类型。字符串可以包含单个字符或多个字符组合成的文本序列。本文将详细介绍JavaScript中的字符串操作方法,帮助开发者更好地...

    广工数据结构课程设计字符串操作

    在本课程设计“广工数据结构课程设计字符串操作”中,我们将专注于一个特定的数据结构——字符串,并探讨如何对其进行高效的操作。字符串在编程中扮演着重要角色,无论是处理用户输入、文本分析还是数据存储,都离不...

    c#字符串操作方法实例

    C# 字符串操作方法实例 C# 中的字符串操作方法是指在 C# 编程语言中对字符串进行操作的各种方法和技术。字符串是使用 string 关键字声明的一个字符数组,字符串对象是“不可变的”,即它们一旦创建就无法更改。 1....

    php字符串操作全实例心得

    PHP 字符串操作全实例心得 PHP 字符串函数大全是 PHP 编程语言中处理字符串的函数的集合。这些函数可以对字符串进行各种操作,如加密、解密、格式化、搜索、替换等。下面是 PHP 字符串函数大全的详细说明: 1. ...

    字符串操作函数大全(String)

    字符串操作函数大全(String) 在 C 语言中,字符串操作函数是非常重要的一部分,它们被广泛应用于各种编程领域。今天,我们将对字符串操作函数大全进行讲解,包括字符串拷贝、字符串连接、字符串比较等多种操作。 ...

    Objective-C中字符串操作总结

    Objective-C是一种用于开发iOS应用的主要编程语言,其字符串操作主要依赖于NSString类和NSMutableString类。NSString用于创建不可变字符串对象,而NSMutableString则用于创建可变字符串对象。以下是Objective-C中...

    C#中字符串操作函数

    从给定的代码片段和部分描述中,我们可以深入探讨C#中的字符串操作函数,这是C#编程语言中处理文本数据的重要方面。以下是对标题“C#中字符串操作函数”所涉及的一些关键知识点的详细说明: ### 1. 字符串截取函数 ...

    字符串操作封装函数

    在编程领域,字符串操作是日常开发中不可或缺的一部分。标题中的"字符串操作封装函数"指的是将常用的字符串处理功能封装成独立的函数,以便于在代码中重复使用,提高代码的复用性和可读性。这样的做法遵循了软件工程...

    字符串操作函数,c(c++)

    在C和C++编程语言中,字符串操作是基础且重要的组成部分。面试中,字符串处理函数的熟练掌握常常被视为衡量一个程序员基本功的标准。本文将详细解释三个常用的字符串操作函数:`strcat`、`strcpy`和`strcmp`,并提供...

    pb函数库之字符串操作函数

    pb函数库之字符串操作函数 pb函数库提供了一系列的字符串操作函数,用于对字符串进行各种操作,包括字符串填充、截取、删除空格、计算长度、大小写转换、模式匹配等。下面是pb函数库中的一些常用字符串操作函数: ...

    字符串操作完全演示

    在编程领域,字符串操作是日常开发中不可或缺的一部分。无论是在数据处理、用户界面交互还是算法实现中,我们都需要对字符串进行各种操作。本教程将全面介绍字符串操作的相关知识点,帮助你掌握这一重要的技能。 ...

    JAVA 字符串 操作

    本文将深入探讨Java中的字符串操作,包括创建、比较、拼接、查找与替换、分割以及格式化。 1. 创建字符串: Java中有两种方式创建字符串:通过`new`关键字或使用字符串字面量。 - 使用`new`关键字:`String str =...

    C#-字符串操作类

    C#-字符串操作类(替换字符串中危险字符、指定位置替换字符串、指定长度缩减字段并加...、指定字符串分割字符串、指定字符串位置获取字符串、过滤SQL中非法字符、检查SQL语句中是否有非法关键字、随机字符串生成、...

    字符串操作代码入门python

    字符串操作代码入门 Python Python 中的字符串操作是编程语言的基础知识之一,字符串是 Python 中最常用的数据类型之一。本文将通过实例代码,详细介绍 Python 中字符串操作的基础知识,包括字符串的基本操作、索引...

    字符串操作大全

    在IT领域,字符串操作是编程中的基础且至关重要的部分,无论你使用哪种编程语言,如Python、Java、C++或JavaScript等。字符串是由字符组成的序列,可以用来存储文本信息。本资源“字符串操作大全”显然提供了关于...

    c++字符串操作

    在C++编程中,字符串操作是一项基础且重要的技能。C++标准库提供了多种处理字符串的工具,包括`std::string`类以及C风格的字符串函数。在这个“c++字符串操作”项目中,开发者可能利用了这些工具来实现对字符串的...

Global site tag (gtag.js) - Google Analytics