我有一個這樣的句子 Give me 4 of ABCD_X and then do something
我需要提取ABCD_X - 在Give me 4 of 之后和空格之前的任何一組字符。
數字可以是任何大小的
我能夠用這個運算式(取自這個問題):
(?<=^Give me d of )(.*?)(?=s)/code>
但這個數字可以是10或更大,所以
(?<=^Give me d of )(.*?)(?=s)在python中回傳錯誤(pandas列),正數lookbehind應該是固定寬度。
有什么方法可以避免正向的lookbehind來剔除這些字符?
uj5u.com熱心網友回復:
你可以試試:
^Give me d of (S )
查看在線demo
^ - 起始行錨。Give me d of - 字面上看,你的搜索字串有1個以上的數字。(S ) - 一個具有1個以上非空格字符的捕獲組。
例如:
import pandas as pd
df = pd.Series(['給我4個ABCD_X,然后做點什么', '給我10個ABCD_Y,然后做點什么'])
df = df.str.extract(r'^給我d 的(S )')
print(df)
列印:
0
0 ABCD_X
1 ABCD_Y
注意:如果你要使用一個命名的捕獲組,列頭將使用該組的名稱而不是該組的整數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/323604.html
標籤:
