Вышла тестовая версия платформы 8.3.23. В полноценном релизе может всё измениться. Но пока, что на данный момент имеем:
Новые методы платформы:
📍
СтрНайтиПоРегулярномуВыражению(<Строка>, <РегулярноеВыражение>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>, <ИгнорироватьРегистр>, <МногострочныйПоиск>)
📍СтрНайтиВсеПоРегулярномуВыражению(<Строка>, <РегулярноеВыражение>, <ИгнорироватьРегистр>, <МногострочныйПоиск>)
📍СтрПодобнаПоРегулярномуВыражению(<Строка>, <РегулярноеВыражение>, <ИгнорироватьРегистр>, <МногострочныйПоиск>)
📍СтрЗаменитьПоРегулярномуВыражению(<Строка>, <РегулярноеВыражение>, <ПодстрокаЗамены>, <ИгнорироватьРегистр>, <МногострочныйПоиск>)
👍 Понятное описание в документации и есть примерыℹ️ Используются регулярные выражения стандарта ICU
🤔 Метод
СтрПодобнаПоРегулярномуВыражению() проверяет на соответствие шаблону ВСЮ строку. Как-то я больше привык, когда метод проверяет наличие в строке любого кусочка, соответствующего шаблону. Но, в принципе, для этого есть СтрНайтиПоРегулярномуВыражению()
👎 Зачем-то наделали в методах кучу параметров. В СтрНайтиПоРегулярномуВыражению() их аж семь. И из них 5 необязательных. А если понадобится что-то добавить? Параметры для регулярок бывают разные. Я понимаю, когда старый легаси не исправляют, но тут... хочется напомнить про стандарты разработки 1С =) Лучше бы сразу сделали что-то типа
ПараметрыПоиска = Новый ПараметрыПоискаПоРегулярномуВыражению();❌ Иногда при некорректном выражении падает сеанс. Пример видно на скрине. Надеюсь, что до релиза поправят)
🕑 Замеры скорости показывают, что 1С выполняет поиск быстрее классической
VBScript.RegExp. Иногда значительно быстрее. Иногда в десятки раз!Ну и в ряде случаев может выполняться медленее. Например, если продублировать строку "
Моя почта: sample@example.com" несколько тысяч раз и применить на ней шаблон "(\w+@\w+\.\w+)", то чем длинее текст, тем 1С больше отстает от компоненты. В несколько раз.🧑💻 Конечно, нужно больше тестов. И если вы хотите поучаствовать, то можете использовать разработанный мною инструмент для этих целей: ссылка на гитхаб.
👥 Если есть какие-то замечания по инструменту, то добавляйте ишуиз. Если же есть замечания по самим регулярным выражениям в 1С, то можете добавлять комментарий на этой страничке. Будет интересно увидеть результаты 🥳
😄 P.S.: Оптимистичное (и классическое) начало главы про регулярные выражения из документации на ИТС:
У вас есть проблема.
Вы решили использовать регулярные
Выражения, чтобы её решить.
Теперь у вас две проблемы.
—————————————————————
@JuniorOneS