正如标题所说,我想提取字符串中最后两次出现的字符之间的文本。
我有:
'9500 anti-Xa IU/ml - 0,6 ml 5700 IU -'
'120 mg/ml – 0.165 ml -'
'300-300-300 IR/ml or IC/ml - 10 ml -'
'Fluocortolone-21-pivalate 1 mg/g, Lidocaine hydrochloride 20 mg/g - 15 g -'
我想要:
'0,6 ml 5700 IU'
'0.165 ml'
'10 ml'
'15 g'
我尝试使用 -\s*.*-
但它匹配第一个和最后一个 -
之间的所有内容。正确的正则表达式是什么?
最佳答案
通过搜索:
import re
[re.search(r'[-–]\s*([^-–]+?)\s*[-–][^-–]*$', x).group(1) for x in l]
或者拆分:
[re.split(r'\s+[-–]\s*', x, 2)[-2] for x in l]
输出:['0,6 ml 5700 IU', '0.165 ml', '10 ml', '15 g']
使用的输入:
l = ['9500 anti-Xa IU/ml - 0,6 ml 5700 IU -',
'120 mg/ml – 0.165 ml -',
'300-300-300 IR/ml or IC/ml - 10 ml -',
'Fluocortolone-21-pivalate 1 mg/g, Lidocaine hydrochloride 20 mg/g - 15 g -'
]
关于python正则表达式在字符的最后两次出现之间保留文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73150043/