Bash字符串处理(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)...

Bash字符串处理(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)

In Java

String.contains & String.indexOf

String.contains方法只能判断是否包含某个子串,不能判断是否包含单个字符(当然能判断是否包含单个字符的子串)

boolean     contains(CharSequence s)
          当且仅当此字符串包含 char 值的指定序列时,才返回 true。

 

使用String.indexOf方法判断是否包含某个字符

int     indexOf(int ch)
          Returns the index within this string of the first occurrence of the specified character.

 

if (s.contains(c)) {

}

 

使用String.indexOf方法判断是否包含某个子串

int     indexOf(String str)
          Returns the index within this string of the first occurrence of the specified substring.

 

if (str.indexOf(sub) >= 0) {

    // do something

}

 

使用String.matches方法判断是否包含子串,注意正则表达式元字符的转义

boolean     matches(String regex)
          Tells whether or not this string matches the given regular expression.

 

if (str.matches(".*"+sub+".*")) {

    // do something

}

 

StringUtils.contains

判断是否包含某个字符

org.apache.commons.lang.StringUtils contains方法 写道
public static boolean contains(String str, char searchChar)

Checks if String contains a search character, handling null. This method uses String.indexOf(int).

A null or empty ("") String will return false.

StringUtils.contains(null, *) = false
StringUtils.contains("", *) = false
StringUtils.contains("abc", 'a') = true
StringUtils.contains("abc", 'z') = false

Parameters:
str - the String to check, may be null
searchChar - the character to find
Returns:
true if the String contains the search character, false if not or null string input

 

判断是否包含另外的子串

org.apache.commons.lang.StringUtils contains方法 写道
public static boolean contains(String str, String searchStr)

Checks if String contains a search String, handling null. This method uses String.indexOf(String).

A null String will return false.

StringUtils.contains(null, *) = false
StringUtils.contains(*, null) = false
StringUtils.contains("", "") = true
StringUtils.contains("abc", "") = true
StringUtils.contains("abc", "a") = true
StringUtils.contains("abc", "z") = false


Parameters:
str - the String to check, may be null
searchStr - the String to find, may be null
Returns:
true if the String contains the search String, false if not or null string input
 

In Bash

是否包含子串(推荐方式)

[[ $STR == *$SUB* ]]

[[ $STR == *$SUB* ]]

注意:*不能引起来,否则不灵。

 

[root@jfht ~]# STR=123456789
[root@jfht ~]# SUB=456
[root@jfht ~]# [[ "$STR" == *"$SUB"* ]] && echo contains;
contains
[root@jfht ~]# SUB=4568
[root@jfht ~]# [[ "$STR" == *"$SUB"* ]] && echo contains;
[root@jfht ~]# SUB="1 2"
[root@jfht ~]# [[ "$STR" == *"$SUB"* ]] && echo contains;
[root@jfht ~]# [[ "$STR" == *$SUB* ]] && echo contains; 
[root@jfht ~]# STR="1 2 3"
[root@jfht ~]# [[ "$STR" == *$SUB* ]] && echo contains;
contains
[root@jfht ~]#

 

特殊情况:以某子串开头。

[[ $STR == $SUB* ]]

特殊情况:以某子串结尾。

[[ $STR == *$SUB ]]

 

[root@jfht ~]# STR=123456789
[root@jfht ~]# SUB=123
[root@jfht ~]# [[ "$STR" == $SUB* ]] && echo "starts"; 
starts
[root@jfht ~]# [[ "$STR" == *$SUB ]] && echo "ends";
[root@jfht ~]# SUB=789
[root@jfht ~]# [[ "$STR" == $SUB* ]] && echo "starts";
[root@jfht ~]# [[ "$STR" == *$SUB ]] && echo "ends";
ends

 

使用正则表达式匹配方式确定是否包含子串

[[ $STR =~ .*$SUB.* ]]

注:.*是不必要的,可写成

[[ $STR =~ $SUB ]]

 

[root@jfht ctmw]# STR=123456789
[root@jfht ctmw]# SUB=456
[root@jfht ctmw]# [[ "$STR" =~ .*$SUB.* ]] && echo contains
contains
[root@jfht ctmw]# [[ "$STR" =~ $SUB ]] && echo contains
contains

 

使用case语句来确定是否包含子串

case "$STR" in *$SUB*) echo contains; ;; esac

 

[root@jfht ctmw]# STR=123456789
[root@jfht ctmw]# SUB=456
[root@jfht ctmw]# case "$STR" in *$SUB*) echo contains; ;; esac
contains
[root@jfht ctmw]#

 

使用字符串替换来实现是否包含子串

if [ "$STR" != "${STR/$SUB/}" ]; then echo contains; fi

解读:如果将字符串STR中的SUB子串删除掉之后,不与STR相等,就表明STR中包含SUB串。

 

[root@jfht ctmw]# STR=123456789
[root@jfht ctmw]# SUB=456
[root@jfht ctmw]# if [ "$STR" != "${STR/$SUB/}" ]; then echo contains; fi
contains
[root@jfht ctmw]#

 

使用grep来实现是否包含子串

if echo "$STR" | grep -q "$SUB"; then echo contains; fi

if grep -q "$SUB" <<<"$STR"; then echo contains; fi

 

[root@jfht ctmw]# STR=123456789
[root@jfht ctmw]# SUB=456
[root@jfht ctmw]# if echo "$STR" | grep -q "$SUB"; then echo contains; fi
contains
[root@jfht ctmw]# if grep -q "$SUB" <<<"$STR"; then echo contains; fi
contains

[root@jfht ctmw]#

 

使用expr match来实现是否包含子串

if [ "$(expr match "$STR" ".*$SUB.*")" != "0" ]; then echo contains; fi

 

[root@jfht ctmw]# STR=123456789
[root@jfht ctmw]# SUB=456
[root@jfht ctmw]# if [ "$(expr match "$STR" ".*$SUB.*")" != "0" ]; then echo contains; fi
contains
[root@jfht ctmw]#

 

 

本文链接:http://codingstandards.iteye.com/blog/1181490   (转载请注明出处)

返回目录:Java程序员的Bash实用指南系列之字符串处理(目录) 

上节内容:Bash字符串处理(与Java对照) - 13.字符串数组连接(以指定分隔符合并)

下节内容:Bash字符串处理(与Java对照) - 15.计算子串出现的次数

 

 

Unity-TextMeshPro如何扩展材质实现字体Face+Outline流光效果 前言 TexeMeshPro 是Unity的一个Text文本插件,实现了比UGUI的Text,更好看的效果,跟高效的性能,所以深受大家的喜欢,但是再好的插件,也不是万能的,比如我们的策划有个新需求,要我们的VIP的名字比普通玩家有更好看的效果,例如:字体流光,外发光颜色扰动,字体贴图等等。那我们就需要去扩展TextMeshPRo的shader功能了。如下图所示 本文,我就带大家一起来扩展一下:如何扩展TextMeshProUGUI TextMesh原始面板 扩展功能后的面板 扩展TextMeshPro 阅读详情

相关推荐

我每天如何使用 ChatGPT

我偶尔会用这个功能作为开始。我本人非常喜欢阅读,让 ChatGPT 来概括所有文章,感觉就像身处于但丁描述的地狱的某个层次那样痛苦。然而,有时一些文章实在是太啰嗦、无聊,或者写得让人不愉快(比如一个无趣记者对一个让人讨厌的人进行的漫无焦点的采访)。我需要获取这些文章中的一些信息,以便保持信息的更新和了解。在晚期资本主义的广告经济下,很多文章只在一个段落里提供新信息,其余都是无聊的填充内容,只是为了展示糟糕的广告,这实在是对人们的时间和生命的一种浪费。我有几次利用 ChatGPT 来。

KevinDai007的博客 3783

bash字符串中包含_如何在Bash中进行“包含字符串”测试?

bash字符串中包含How to test whether a string $str contains another string $needle in Bash? 如何在Bash中测试字符串 $str是否包含另一个字符串$needle ? You can use this piece of Bash script: 您可以使用这段Bash 脚本 : [[ "$str" == *"$nee...

cuma2369的博客 3995

舵机操作手册

微型伺服马达原理与控制(中鸣) 1、微型伺服马达内部结构一个微型伺服马达内部包括了一个小型直流马达;一组变速齿轮组;一个反馈可调电位器;及一块电子控制板。其中,高速转动的直流马达提供了原始动力,带动变速(减速)齿轮组,使之产生高扭力的输出,齿轮组的变速比愈大,伺服马达的输出扭力也愈大,也就是说越能承受更大的重量,但转动的速度也愈低。 2、微行伺服马达的工作原理一个微型伺服马达是一个典型闭环反馈系统,其原理可由下图表示: 减速齿轮组由马达驱动,其终端(输出端)带动一个线性的比例电位器作位置检测,该电位器把

HEIMENGER的博客 3136

linux判断一列几个字符串,在 Bash 中如何检查字符串是否包含某个子串

在 Bash 中使用字符串时最常见的操作之一是确定字符串是否包含另一个字符串。在本文中,我们将向您展示检查字符串是否包含子字符串的几种方法。使用通配符最简单的方法就是使用星号通配符 * 包裹子字符串,并与字符串比较。通配符是用于表示零个,一个或多个字符的符号。如果测试返回 true ,则子字符串包含在字符串中。在下面的示例中,我们使用 if 语句和相等运算符 (==) 来检查是字符串 STR 中是...

weixin_36412332的博客 2015

光度立体三维重建——光源标定

光源标定的目的是为了确定光源方向或强度,一般利用物体表面的明暗信息、阴影信息或者反射特性三类信息中的其中一种即可,也可以将三种信息结合。采用不同标定物,是利用不同标定物的反射特性获取更加精确的光源信息。

wfengzi5的博客 1560

《华为项目管理之道》第1章笔记

performance indicator,KPI)纳入个人绩效承诺书,贯彻结果导向的理念,以向员工。客户需求是华为发展的原动力,为客户服务是华为存在的唯一理由。目经理‘用兵’,依靠市场机制‘调兵’”,打破了人员在功能部门的板结,实现了听得。为管理者选拔的必要条件,项目经理成为人人向往的岗位。《华为项目管理之道》,是新出的华为官方的项目管理书,整个书不错。伴随着项目型组织的建立,华为逐步形成了完备的项目管理流程和制度,从而将业务运。为此,通过改革,重新明确了项目经理承担的经营责任,并开始以项。

jackyrongvip的专栏 2127

在Bash中如何检查字符串是否包含子字符串

在Bash中检查字符串是否包含子字符串的四种方法。

luoyz23的博客 877

CentOS7下快速修复libssl.so.1.1缺失问题(附腾讯云镜像加速下载)

本文详细介绍了在CentOS7系统中快速修复libssl.so.1.1缺失问题的工程化实践方案。通过编译安装OpenSSL 1.1.x版本、配置动态链接器及创建符号链接等步骤,有效解决共享对象文件缺失问题,并提供了腾讯云镜像加速下载的优化方案,帮助开发者高效部署现代应用。

weixin_33711647的博客 367

如何使用Bash测试文件中是否存在字符串?

I have a file that contains directory names: 我有一个包含目录名称的文件: my_list.txt : my_list.txt : /tmp /va

w36680130的博客 1058

RTL8211F千兆PHY原理图与PCB设计:从手册到量产的完整指南

在工业网关、边缘计算和FPGA/CPU以太网扩展设计中,千兆PHY芯片的稳定运行取决于外围电路的精细设计。RTL8211F(I)作为应用广泛的物理层收发器,其原理图设计涉及电源域划分、时钟与复位时序、RGMII/ MDIO接口匹配以及MDI差分网络等多个环节。正确理解数据手册的阅读顺序,掌握100Ω差分阻抗控制、等长约束和EMI布局技巧,是保证链路可靠性和信号完整性的关键。本文从芯片选型与数据手册解析切入,系统梳理从电源去耦到PCB布局布线的工程实践要点,帮助工程师规避Link不稳定、MDIO读取失败、吞吐

weixin_28721917的博客 349

基于深度学习的柑橘病害检测系统——YOLOv8 + UI界面 + 数据集

深度学习是机器学习的一种重要分支,它通过构建多层的神经网络(尤其是卷积神经网络CNN)来从大规模的数据中学习特征。近年来,深度学习特别是在计算机视觉领域取得了显著的进展,成为图像分类、目标检测、图像分割等任务的主要技术。对于农业病害检测问题,深度学习通过对大量带标签的病害图像进行训练,能够自动识别不同类型的病害,并判断病害的程度。通过图像中目标(病害区域)的边界框,可以快速定位病害区域,进一步分析其影响范围。

YOLO 1042

如何检查字符串是否包含Bash中的子字符串

我在 Bash 中有一个字符串:如何测试它是否包含另一个字符串?其中 ?? 是我的未知运算符。我使用 echo 和 grep 吗?这看起来有点笨拙。

HuntsBot的博客 1145

视源CVTE嵌入式面试题及参考答案(200+面试题,17万字)

内核模块如何设置? 内核模块是可在运行时动态加载到内核或从内核卸载的代码块。以下是设置内核模块的步骤: 首先,编写内核模块代码。通常使用 C 语言编写,包含必要的头文件,如<linux/init.h>、<linux/module.h>等。在代码中,需要定义模块的初始化函数和清理函数。初始化函数在模块加载时被调用,用于进行模块的初始化工作,如注册设备、分配资源等。清理函数在模块卸载时被调用,用于释放资源、注销设备等。 例如: #include <li

大模型大数据攻城狮的专栏 2204

java 判断包含6,Bash字符串处置(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)...

Bash字符串处理(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)Bash字符串处理(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)In JavaString.contains & String.indexOfString.contains方法只能判断是否包含某个子串,不能判断是否包含单个字符(当然能判断是否包含单个字符的子串)boolean ...

weixin_36255898的博客 162

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java判断字符串是否包含某个字符串_Bash技巧:使用[[命令的 =~ 操作符判断字符串的包含关系...

在 Linux bash shell 中,可以使用 [[ 命令来进行判断。其中,可以使用 [[ 命令的 =~ 操作符来判断某个字符串是否包含特定模式。查看 man bash 对 [[ 命令的 =~ 操作符说明如下:An additional binary operator, =~, is available, with the same precedence as == and !=.When i...

weixin_39606575的博客 487

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Bash字符串处理(与Java对照) - 17.判断是否以另外的字符串结尾

From: http://codingstandards.iteye.com/blog/1187353 In Java String.endsWith oolean     endsWith(String suffix)           测试此字符串是否以指定的后缀结束。   StringUtils.endsWith & StringUtils.

JoeBlackZQQ的专栏 3089

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Bash字符串处理(与Java对照) - 16.判断是否以另外的字符串开头

Bash字符串处理(与Java对照) - 16.判断是否以另外的字符串开头 In Java String.startsWith  boolean     startsWith(String prefix)           测试此字符串是否以指定的前缀开始。  boolean     startsWith(String prefix, int toffset) ...

巨人站在肩膀上 334

BASH字符串处理:字符串分割为数组

http://codingstandards.iteye.com/blog/1164910 Bash字符串处理(与Java对照) - 25.字符串分割(成数组) In Java String.split  String[]     split(String regex)           根据给定的正则表达式的匹配来拆分此字符串。  String[]

zouyongjin的专栏 7763

Bash字符串处理(与Java对照) - 6.判断字符串是否为空(不为空)

Bash字符串处理(与Java对照) - 6.判断字符串是否为空(不为空) In Java 判断是否为null 是null if (s == null) {     // do something }   不是null if (s != null) {     // do something }   判断是否null或空串 是null或者空串:方法一 if...

巨人站在肩膀上 590

Bash字符串处理(与Java对照) - 11.比较两个字符串大小(字典顺序、数值比较)...

Bash字符串处理(与Java对照) - 11.比较两个字符串大小(字典顺序、数值比较) In Java String.compareTo int     compareTo(String anotherString)           按字典顺序比较两个字符串。如果返回0,表示相等;&lt;0表示小于;&gt;0 表示大于。   int     compareToIgnor...

巨人站在肩膀上 806

Bash字符串处理(与Java对照) - 23.字符串替换、子串删除、子串截取

Bash字符串处理(与Java对照) - 23.字符串替换、子串删除、子串截取 In Java 字符串替换  String     replace(char oldChar, char newChar)           返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。  String     replace(CharSe...

巨人站在肩膀上 633

java如何判断数据是文字类型_【工具类】Java中判断字符串是否为数字的五种方法...

1 //方法一:用JAVA自带的函数2 public static boolean isNumeric(String str){3 for (int i = str.length();--i>=0;){4 if (!Character.isDigit(str.charAt(i))){5 return false;6 }7 }8 ...

weixin_33274667的博客 1176

linux 判断相等,linux if 判断字符串是否相等

str1==str2和str1.Equals(str2)。两种方法都可以。#!/bin/shecho -n "login:"read nameecho -n "password:"read passwdif [ "$name" = "aa" -a "$passwd" = "aaa" ];thenecho "right!"else echo "error"fi一。运行过程中出现过[: mi...

weixin_29284885的博客 4708

Bash字符串处理(与Java对照) - 22.判断字符串是否数字串

Bash字符串处理(与Java对照) - 22.判断字符串是否数字串 In Java 用正则表达式匹配方式判断字符串是否数字串 String str = "1234"; if (str.matches("\\d+")) {     // matched, it's digit string }   In Bash 使用模式匹配(Pattern Matching)判...

巨人站在肩膀上 307
上一篇: Bash字符串处理(与Java对照) - 13.字符串数组连接(以指定分隔符合并)
下一篇: Bash字符串处理(与Java对照) - 15.计算子串出现的次数
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值