Python 字符串和下一个非数字字符之间的字符串
我有这样一个字符串:Python 字符串和下一个非数字字符之间的字符串,python,string,Python,String,我有这样一个字符串: rawString "sampleStringWithNumber/obj3453andBlabla" def find_between( s, first, last ): try: start = s.index( first ) + len( first ) end = s.index( last, start ) return s[start:end] except ValueError:
rawString "sampleStringWithNumber/obj3453andBlabla"
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")))
我希望做到这一点:
newString = "obj3453"
我知道有很多相关的问题,如果obj3453
后面的下一个字符是静态的,这不会是一个问题,但不幸的是,下一个字符可以是任何字母(单词),也可以有多于/少于4个数字
那么,有没有可能这样做:
rawString "sampleStringWithNumber/obj3453andBlabla"
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")))
基本上,我想传递一个变量作为第二个参数,它可以是除数字以外的任何参数 使用正则表达式
>>> import re
>>> s = "sampleStringWithNumber/obj3453andBlabla"
>>> re.search(r'/(.*?\d+)', s).group(1)
'obj3453'
正则表达式/(.*?\d+
搜索斜杠,后跟由任意字符序列(非贪婪)组成的组:*?
,后跟任意位数:\d+
re.search
返回匹配对象(或无),第一个.group
将作为结果。在实际代码中,您可能应该首先测试是否找到任何东西。太好了,谢谢!也许你能告诉我,如果数字后面没有字符,它会工作吗?我的意思是没有即将到来的字符或者有空白。空白已经像这样工作了,我在编辑中修复了“没有即将到来的字符”的事情。