Для извлечения веса из текста, удовлетворяющего данным форматам, можно использовать регулярное выражение (REGEX) следующего вида:
```regex
(\d{3})[ ]?(?:g/m²|g/m2|g/m²|g/m2)
```
Теперь давайте разберем его по частям:
1. `(\d{3})` - это группа, которая найдет три последовательные цифры (вес). Обратите внимание на скобки, которые используются здесь для создания группы захвата.
2. `[ ]?` - это опциональный символ пробела, который может присутствовать или отсутствовать перед единицами измерения. Квадратные скобки означают, что символ является опциональным, а внутри скобок находится просто пробел.
3. `(?:g/m²|g/m2|g/m²|g/m2)` - это непорицаемая группа (non-capturing group), которая описывает различные варианты единиц измерения веса. Непорицаемая группа начинается с `?:`, чтобы указать, что группа не должна быть захвачена. Здесь указаны четыре варианта: `g/m²`, `g/m2`, `g/m²`, `g/m2`, что учитывает возможные различия в обозначении квадрата.
Таким образом, при применении данного регулярного выражения к тексту, оно будет искать совпадения, состоящие из трех цифр, за которыми может следовать опциональный пробел и один из четырех вариантов единиц измерения веса. Результатом будет найденный вес.