21 lines
506 B
Python
21 lines
506 B
Python
|
import re
|
||
|
|
||
|
rgx_float = r"[-+]?(\d+([.,]\d*)?|[.,]\d+)([eE][-+]?\d+)?"
|
||
|
rgx_name = "[a-z,_]*"
|
||
|
optics_pattern = re.compile(
|
||
|
f"optics *: *(?P<material>{rgx_name})(: *(?P<num>{rgx_float}))?",
|
||
|
re.IGNORECASE | re.MULTILINE,
|
||
|
)
|
||
|
|
||
|
|
||
|
def get_optics_fields(string_: str):
|
||
|
fields = re.finditer(optics_pattern, string_)
|
||
|
return fields
|
||
|
|
||
|
|
||
|
def clear_description(desc: str) -> str:
|
||
|
"""Removes text corresponding to an optical property"""
|
||
|
|
||
|
new_desc = re.sub(optics_pattern, "", desc)
|
||
|
return new_desc
|