# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(.*)\t(\d*\.\d*[^[:space:]+\t])"
test_str = ("Electrical Parameters \n"
"Re 3.70 Ohm electrical voice coil resistance at DC\n"
"Le 0.069 mH frequency independent part of voice coil inductance\n"
"L2 0.086 mH para-inductance of voice coil\n"
"R2 1.07 Ohm electrical resistance due to eddy current losses\n"
"Cmes 110.16 µF electrical capacitance representing moving mass\n"
"Lces 12.83 mH electrical inductance representing driver compliance\n"
"Res 42.92 Ohm resistance due to mechanical losses\n"
"fs 133.9 Hz driver resonance frequency \n"
" \n"
"Mechanical Parameters \n"
"(using laser) \n"
"Mms 1.212 g mechanical mass of driver diaphragm assembly including air load and voice coil\n"
"Mmd (Sd) 1.145 g mechanical mass of voice coil and diaphragm without air load \n"
"Rms 0.256 kg/s mechanical resistance of total-driver losses\n"
"Cms 1.166 mm/N mechanical compliance of driver suspension\n"
"Kms 0.86 N/mm mechanical stiffness of driver suspension\n"
"Bl 3.317 N/A force factor (Bl product)\n"
"Lambda s 0.114 suspension creep factor\n"
" \n"
"Loss factors \n"
"Qtp 0.316 total Q-factor considering all losses\n"
"Qms 3.976 mechanical Q-factor of driver in free air considering Rms only\n"
"Qes 0.343 electrical Q-factor of driver in free air considering Re only\n"
"Qts 0.315 total Q-factor considering Re and Rms only\n"
" \n"
"Other Parameters \n"
"Vas 0.3816 l equivalent air volume of suspension \n"
"n0 0.257 % reference efficiency (2 pi-radiation using Re) \n"
"Lm 86.30 dB characteristic sound pressure level (SPL at 1m for 1W @ Re)\n"
"Lnom 86.64 dB nominal sensitivity (SPL at 1m for 1W @ Zn)\n"
" \n"
"rmse Z 4.98 % root-mean-square fitting error of driver impedance Z(f)\n"
"rmse Hx 2.97 % root-mean-square fitting error of transfer function Hx (f)\n"
" \n"
"Series resistor 0.00 Ohm resistance of series resistor\n"
"Sd 15.21 cm² diaphragm area\n\n")
matches = re.finditer(regex, test_str)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html