字符串我有一個列表:的Python如何打印包含數字
var = ["renderPass1", "renderPass2","renderPass3", "renderPassFilter", "renderPassSets"]
我怎麼只打印renderPass1,renederPass2等,我的意思是,以後只打印包含多個成員「renderPass」
字符串我有一個列表:的Python如何打印包含數字
var = ["renderPass1", "renderPass2","renderPass3", "renderPassFilter", "renderPassSets"]
我怎麼只打印renderPass1,renederPass2等,我的意思是,以後只打印包含多個成員「renderPass」
使用正則表達式來查找數字。
檢查python庫:Python: Re。你會想看看「\ d」。
一個工具,可以幫助我很多正則表達式是Txt to Regex。你只需放入你想要匹配的字符串並用GUI構建正則表達式。然後它爲您提供下面的代碼。
提及正則表達式+1。在python中的一個例子會很有趣:-) – Nico
根據您對列表中的內容知道多少選擇一個。
打印頭3
print var[:3]
印刷與圖案renderPass
任何名稱後跟數字
print [name for name in var if name.startswith('renderPass') and name[9].isdigit()]
打印以數字任何名稱的任意位置在它
print [name for name in var if any(ch.isdigit() for ch in name)]
for value in var:
if value[-1].isdigit(): # check if last char is a number
print value
現在如果y OU要測試的字符串「renderPass」
for value in var:
if 'renderPass' in value and value[-1].isdigit()
print value
for name in var:
try:
float(name[len("renderPass"):])
print name
except ValueError, er:
# does not have a number after renderPass -> do nothing
pass
我給出兩個答案,因爲你的問題是沒有什麼被認爲是匹配的太清楚。
這是因爲如果該號碼的位置是不相關:
>>> var = ["renderPass1", "renderPass2","renderPass3", "renderPassFilter", "renderPassSets"]
>>> [x for x in var if any(c.isdigit() for c in x)]
['renderPass1', 'renderPass2', 'renderPass3']
>>>
這是因爲如果該號碼有"renderPass"
後前來:
>>> from re import search
>>> # I altered the values in here so I could demonstrate
>>> var = ["renderPass1", "renderPass2","renderPass3", "1renderPassFilter", "1renderPassSets"]
>>> [x for x in var if search("renderPass.*\d", x)]
['renderPass1', 'renderPass2', 'renderPass3']
>>>
假設你只需要與「SomeTextNumber」的模式,你可以這樣寫
[x for x in var if re.match("\w+\d$", x)]
import re
p = re.compile("[0-9]$")
for s in var:
if p.search(s): print s
你是說包含數字或字符串的字符串包含數字_after_'「renderPass」嗎?換句話說,這個數字的位置是否相關? – iCodez
其實他們倆。所有答案都非常有用,而且彼此不同。正則表達式非常有用。 – iRex