[英]Python: How to slice a string on a specific number of characters into a list?
[英]how to slice specific characters in python with constraints?
str="class computer :"
name=str[str.find("class"):str.find(":")]
print name
上面的代碼必須將結果輸出為我得到的" computer "
,即"class computer"
。 可能是什么錯誤?
一旦找到.find('class')
,就需要使該索引偏移字符串'class'
本身的長度。
>>> s = 'class computer :'
>>> s[s.find('class')+len('class'):s.find(':')]
' computer '
您可以丟下一條strip
以刪除開頭和結尾的空格
>>> s[s.find("class")+len('class'):s.find(":")].strip()
'computer'
如果您在class中有其他單詞,則查找將失敗,您可以使用帶有單詞邊界的正則表達式來查找單詞class
的完全匹配class
:
import re
print(re.findall(r"(?<=\bclass\b)\s+\w+\s+",s))
您可以看到一個示例,該示例將如何失敗:
In [9]: s = "subclass class computer :"
In [10]: s[s.find('class')+len('class'):s.find(':')]
Out[10]: ' class computer '
In [11]: re.findall(r"(?<=\bclass\b)\s+\w+\s+",s)
Out[11]: [' computer ']
如果您的字符串中有多個class
,則可以在lookbehind斷言中使用lookahead:
s = "subclass class tv class computer :"
print(re.findall(r"(?<=\bclass\b)\s+\w+\s+(?=:)",s))
[' computer ']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.