「国語20数学30」から20+30=50を求めたい。データには、このペアが1000件ほど存在します。
re.matchを使えると思うのですが、どうもうまく行きません。ヒントをご教示頂けるとありがたいです。

reを使わないバージョンですが、現在のところ、下記のように書いているのですが、
うまく行きません。

import pandas as pd 
import numpy as np

df = pd.DataFrame(
    {'x': ['国語20数学60', '160', '国語100数学20']},
    index=[1, 2, 3])

# index no.2には、国語と数学の合計点が入っています。 

print(df)

df['total'] = np.zeros((len(df),1))  
lang = list(range(1, 101))  
math  =list(range(1, 101))  
for s_lang in lang :
    for s_math in math :
        for i in range(len(df)):
            if ("国語%d数学%d" %(s_lang,s_math)) in df['x'][i]:   
              df['total'][i] = s_lang+s_math
            else:
                df['total'][i] =df['x'][i] 

print(df)