所以我在Python中有如下的字串:
teststr = "第一行.............................234"
"1.1.0 (L1) TestLine.........................567"。
"1.1.1 (L1) 二線.............................587"
"三線.............................856">
"1.1.2 (L2) Fourth Line.............................775"。
"1.2.7 (L1) 第五線.............................262"
"1.5.3 (L1) 第六行.............................346"
"第七行..............................234"。
我需要在一個串列中只保存(L1)的資訊。
我不能用(如果行中包含L1或什么)來迭代行,因為有時一個(L1)資訊需要超過一行(例如第二行第三行)。
我嘗試了很多拆分和連接字串的方法,但是沒有任何方法對我有用。
有誰知道我怎樣才能做到這一點?
uj5u.com熱心網友回復:
s = ' (L1)'
for i in teststr.split('1. ')。
n = i.find(s)
if n != -1:
print(i[n len(s):] )
輸出:
TestLine.........................567
第二行.............................587第三行.............................856
五線.............................262。
第六行.............................346第七行..............................234
正如你在問題下的評論中所顯示的那樣,如果你想要一個串列:
s = ' (L1)'
lines = [i[n len(s):]for i in teststr. split('1.') if (n := i.find(s)) != -1]
uj5u.com熱心網友回復:
你可以在regex上分割字串,然后在資料上進行回圈:
teststr = "第一行.............................234"
"1.1.0 (L1) TestLine.........................567"。
"1.1.1 (L1) 二線.............................587"
"三線.............................856">
"1.1.2 (L2) Fourth Line.............................775"。
"1.2.7 (L1) 第五線.............................262"
"1.5.3 (L1) 第六行.............................346"
"第七行..............................234"。
import re
結果 = re.split(r'((Ld ))', teststr)
這將在任何與(Ln)相似的值上分割輸入,其中n可以是任何數字。
這將給出一個包含以下值的串列:
這將給出一個包含以下值的串列:
['First Line.............................2341.1.0 '。
'(L1)'。
' TestLine.........................5671.1.1 ',
' (L1)',
' Second Line.............................587Third Line.............................8561.1.2 ',
' (L2)'。
' 第四行.............................7751.2.7 '。
'(L1)'。
' 第五行.............................2621.5.3 '。
'(L1)'。
' 第六行.............................346第七行..............................234']
在這種情況下,我們只想選擇(L1)之后的值,所以我們在串列上回圈(滑動),只在(L1)之后列印值。
for x, y in zip(results, results[1: ] )。
if x == '(L1)'。
print(y)
完整的代碼變為:
teststr = "第一行.............................234"
"1.1.0 (L1) TestLine.........................567"。
"1.1.1 (L1) 二線.............................587"
"三線.............................856">
"1.1.2 (L2) Fourth Line.............................775"。
"1.2.7 (L1) 第五線.............................262"
"1.5.3 (L1) 第六行.............................346"
"第七行..............................234"。
import re
結果 = re.split(r'((Ld ))', teststr)
for x, y in zip(results, results[1:]) 。
if x == '(L1)'。
print(y)
這就得到:
TestLine.........................5671.1.1
二線.............................587三線.............................8561.1.2
第五行.............................2621.5.3
第六行.............................346第七行..............................234
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/307883.html
標籤:
