shell怎么查找子字符串出现的位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell怎么查找子字符串出现的位置相关的知识,希望对你有一定的参考价值。

首先获得一个字符用ch=getchar()或者scanf ("%c", &ch); 其次判断字符相等直接用== 接着j没有定义 最后输出int数组用循环 参考代码: #include #include int main() char a[80] = "abcdefgh\0"; char ch; int i, m, b[80]; int flag = 0; 参考技术A 使用awk查找子串的位置
例如:
a=aaabbb
b=bbb

subIndex=`awk 'BEGINprint match("'$a'","'$b'")'`

这样的话没有问题。

python 字符串函数find功能拓展——查找母串内所有子串的位置

前言  

  我们知道,字符串内置了很多功能的处理函数,其中,find、index函数都可以接受一个参数意义是作为目标子串,而返回母串中从左到右遍历时子串第一次出现的索引值(每一次调用都是从头开始,没有记忆),如果查询不到返回-1。

  如下面的例子:

技术图片

  如果,子串不在母串中出现,则find函数返回-1,而index方法返回ValueError错误,这也是两者的区别,接上例:

技术图片


 深入

  rindex rfind函数:功能类似,把母串从右向左遍历,找到子串第一次出现的位置,也没有记忆性。

技术图片

 


后续

 编写了一个函数,实现find函数类似的功能,但是这次要把所有的子串位置以列表形式返回,这是函数的功能。

 

 1 # coding=utf-8 
 2 def find_all(source,dest):
 3     length1,length2 = len(source),len(dest)
 4     dest_list = []
 5     temp_list = []
 6     if length1 < length2:
 7         return -1
 8     i = 0
 9     while i <= length1-length2:
10         if source[i] == dest[0]:
11             dest_list.append(i)
12         i += 1
13     if dest_list == []:
14         return -1
15     for x in dest_list:
16         print("Now x is:%d. Slice string is :%s"% (x,repr(source[x:x+length2])),end=" ")
17         if source[x:x+length2] != dest:
18             print(" dest != slice")
19             temp_list.append(x)
20         else:
21             print(" dest == slice")
22     for x in temp_list:
23         dest_list.remove(x)
24     return dest_list
25 
26 s1="He!wworld!www.baidu.cowws.cowwppww"
27 s2="ww"
28 index_list = find_all(s1,s2)
29 if index_list != -1:
30     print("Now dest_list is:{}".format(index_list))
31 else:
32     print("Error finding!")

技术图片

技术图片

 

以上是关于shell怎么查找子字符串出现的位置的主要内容,如果未能解决你的问题,请参考以下文章

查找特定的子字符串,然后使用 shell 命令对下一个出现的变量执行更改 [关闭]

PHP 查找字符串中所有出现的子字符串

字符串的常用操作

字符串查找目标子串出现的次数

python 字符串函数find功能拓展——查找母串内所有子串的位置

字符串实现strStr()——查找子串位置