a = 'hello world'
a.find('wor')
# result: 5
是索引5.
这不是我想要的。我想返回在索引5上找到的特定子字符串。
在Python中如何在字符串中搜索/查找子字符串,如果找不到索引号,则返回该子字符串。
有出路.....
答案 0 :(得分:2)
请注意,Python中的字符串是不可变的,因此如果您以某种方式从源字符串中提取子字符串,则必须通过复制源字符串中的字符来创建新字符串。它与其他语言不同,您只需将引用返回到源字符串即可。
要做你想做的事,我只需使用in
运营商。例如:
a = 'hello world'
data = ('wor', 'WOR', 'hell', 'help')
for s in data:
print(s, s if s in a else None)
<强>输出强>
wor wor
WOR None
hell hell
help None
或者如果你更喜欢一个功能:
def found(src, substring):
return substring if substring in src else None
for s in data:
print(s, found(a, s))
如果你不熟悉Python的yes_value if some_condition else no_value
语法(也就是条件表达式),那么这个函数使用更多传统的&#34重写了; if ... else
阻止:
def found(src, substring):
if substring in src:
return substring
else:
return None
答案 1 :(得分:1)
您可以这样做:
myString = "hello world"
found = a.find('wor')
a = a[found: found+3]
当然只是一个简单的例子,但应该给你一个想法,它使用python list切片功能,你可以更进一步:
def find_substring(string, substring):
pos = string.find(substring)
return string[pos: pos + len(substring)]
答案 2 :(得分:0)
这符合您的要求:
>>> import re
>>> (re.search('wor','Hello world')).group(0)
'wor'
>>>
(阅读re.search
org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectForm cannot be cast to org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage
了解更多信息)