首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Bash中如何提取子字符串

问题: 对于形如 someletters_12345_moreleters.ext 的文件名,我想提取其中的5位数字并将它们放入一个变量中。...明确一下细节,一个文件名的形式是若干个字符(不包含下划线),跟着一个五位的数字,数字两边都有一个下划线,最后跟着另一组若干个字符(不包含下划线)。我想要提取这个5位数字并将它存入一个变量中。...-d '_' 参数指定使用下划线字符 (_) 作为字段分隔符。 -f 2 参数表示提取第二个字段(字段索引从1开始计数)。...'[[:digit:]]{5}' 是一个正则表达式,匹配连续的任意五个数字字符。 因此,grep 会找出 $filename 中连续出现的任意五个数字,并只输出这些数字。...总结起来,第一行命令的目的是从变量 $filename 所代表的字符串中找到第一个连续的五位数字序列,并将它存入 number 变量中。

23510

Python查找任意字符串中只出现一次的字符(2016奇虎笔试题)

''' 程序功能: 编写函数,给定任意字符串,找出其中只出现一次的字符, 如果有多个这样的字符,就全部找出。'''...import sys def searchOne(s): # 创建空字典 d = dict() # 遍历字符串,并分别记录每个字符的出现次数 for ch in s: # 这里重点演示字典的...get()方法 # 如果这个字符出现过,加1 # 如果这个字符第一次出现,0+1 d[ch] = d.get(ch, 0) + 1 # 列表推导式,查找所有只出现一次的字符...chs = [ch for ch, n in d.items() if n==1] # 返回最终结果,所有只出现一次的字符 return chs if __name__ == '__main...__': # 获取命令行参数 s = sys.argv[1] print(searchOne(s)) 本程序需要在命令行提示符环境中运行,假设代码保存为test3.py,运行方式和结果如下

6.1K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    第一个只出现一次的字符

    题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 看到这道题时,最直观的想法是从头开始扫描这个字符串中的每个字符。...当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。...在这 个数据容器中可以根据字符来查找它出现的次数,也就是说这个容器的作用是把一个字符映射成一个数字。在常用的数据容器中,哈希表正是这个用途。...第一次扫描字符串时,每扫描到一个字符就在哈希表的对应项中把次数加1 。接下来第二次扫描时,每扫描到一个字符就能从哈希表中得到该字符出现的次数。这样第一个只出现一次的字符就是符合要求的输出。...寻找唯一的一个只出现一次的数。

    72770

    数组中只出现一次的数字

    如果数组中只一个数字是只出现一次的,其他数字都是成双成对出现的,那么我们从头到尾依次异或数组中的每个数字,最终的结果刚好就是那个只出现一次的数字,因为那些成对出现两次的数字全部在异或中抵消了。...如果这样拆分成两个数组,那么我们就可以按照之前的办法分别对两个数组进行异或运算找出两个只出现一次的数字。 问题来了,如何进行分组呢?...我们还是从头到尾依次异或数组中的每个数字,那么最终得到的结果就是两个只出现一次的数字异或的结果。...位都为1,第二个子数组中的数组第index位都为0,那么只出现一次的数字将被分配到两个子数组中去,于是每个子数组中只包含一个出现一次的数字,而其他数字都出现两次。...这样我们就可以用之前的方法找到数组中只出现一次的数字了。

    90920

    再啰嗦最后一次,Java字符串是不可变的

    Java 之父詹姆斯高司令曾在一次采访中被问及这样一个问题:“高司令,应该什么时候使用不可变对象啊?”你猜高司令怎么回答? 如有可能,我愿意任何时候都使用不可变对象。...因此,把字符串缓存起来,并且重复使用它们会节省大量堆空间(堆内存用来存储 Java 中的对象,无论是成员变量、局部变量,还是类变量,它们指向的对象都存储在堆内存中),因为不同的字符串变量引用的是字符串常量池中的同一个对象...2)安全性 字符串在 Java 应用程序中的使用范围非常广,几乎无处不在,比如说存储用户名、密码、数据库连接地址等等这些非常敏感的信息,因此,必须要保证 String 类的绝对安全性。...4)哈希码 字符串广泛应用于 HashMap、HashTable、HashSet 等需要哈希码作为键的数据结构中,在对这些哈希表进行操作的时候,需要频繁调用 hashCode() 方法来获取键的哈希码。...0 : (h = key.hashCode()) ^ (h >>> 16); } 由于字符串是不可变性,这就保证了键值的哈希值不会发生改变,因此在第一次调用 String 类的 hashCode()

    56220

    SQL 提取字符串中的字母

    问题描述 我们在进行数据处理时,可能经常需要对不同类型的字符进行抽取。比如一些产品型号,批次之类的会使用字母表示,这个时候该如何提取这些数据呢?...问题分析 不管是字母,还是数字,我们都可以使用相应的匹配规则来抽取出来。但是由于字母是混合在字符串中,我们需要循环对其进行匹配。 具体解法 我们创建一个函数,通过调用这个函数来找出所有的字母。...expression里第一次出现的位置,起始值从1开始算。...expression1 从start位置开始,删除长度为length的字符后,在start后面填充expression2。...() SELECT dbo.GET_LETTER('SQL数1据2库3开4发road') 结果: 这与我们预期的结果一致,证明这个自定义函数是可行的。

    14410

    JS求字符串中连续字符出现最长的字符串

    最长的字母序连续子字符串的长度字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说,字符串 "abcdefghijklmnopqrstuvwxyz" 的任意子字符串都是 字母序连续字符串 。...例如,"abc" 是一个字母序连续字符串,而 "acb" 和 "za" 不是。给你一个仅由小写英文字母组成的字符串 s ,返回其 最长 的 字母序连续子字符串 的长度。...cdef" 是最长的字母序连续子字符串。分析:a. 基本操作,判断参数类型以及长度b....求最大值对应的字符,定义两个变量,一个是临时变量a,每次循环判断是否连续,连续a则进行拼接,否则就a置为当前循环的字符;再定一个临时最大长度字符变量b,每次循环结束之后,将刚才的临时变量a和这个临时最大值...b变量取最长长度c,最大长度c即是要求的最大长度对应的字符function fn(str) { if (typeof str !

    1.3K30

    找第一个只出现一次的字符

    041:找第一个只出现一次的字符 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB描述 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。...输入一个字符串,长度小于100000。输出输出第一个仅出现一次的字符,若没有则输出no。...arrString; char resultChar=0; int i = 0; char* f,*l,*p; while (arrString[i]) {              //遍历字符数组...p = &arrString[i];                   f=strchr(arrString, *p);          //寻找字符首次出现的位置,返回该位置所在的指针...l=strrchr(arrString, *p);             //寻找字符最后一次出现的位置,返回该位置所在的指针 i++; if (l - arrString == f -

    1.8K10
    领券