字符串和下一个字符之间的字符串不是麻木的

2024-09-28 21:42:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一根线:

rawString "sampleStringWithNumber/obj3453andBlabla"

我想做到这一点:

newString = "obj3453"

我知道有很多相关的问题,如果obj3453后面的下一个字符是静态的,也不会有问题,但不幸的是,下一个字符可以是任何字母(单词),也可以有多于/少于4个数字。你知道吗

那么有没有可能这样做:

 def find_between( s, first, last ):
    try:
        start = s.index( first ) + len( first )
        end = s.index( last, start )
        return s[start:end]
    except ValueError:
        return ""


print ((find_between(rawString, "/","the_next_string_thats_not_a_number")))

基本上我想传递一个变量作为第二个参数,它可以是除数字以外的任何东西。你知道吗


Tags: indexreturn数字betweenfind字符startend
1条回答
网友
1楼 · 发布于 2024-09-28 21:42:50

使用正则表达式!你知道吗

>>> import re
>>> s = "sampleStringWithNumber/obj3453andBlabla"
>>> re.search(r'/(.*?\d+)', s).group(1)
'obj3453'

正则表达式/(.*?\d+)搜索斜杠,后跟由任意字符序列(非贪婪)组成的组:.*?,后跟任意数量的数字:\d+。你知道吗

re.search返回匹配对象(或无),第一个.group将是结果。在实际代码中,您可能应该首先测试是否找到任何东西。你知道吗

相关问题 更多 >