Усовершенствованное регулярное выражение :Не могу понять случая, когда (?R )можно использовать рекурсивное регулярное выражение

Если это то же самое, что я нашел в связи с этим:

https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html

lightGBM is a gradient boosting framework that uses tree-based learning algorithms. It is designed to be distributed and efficient with the following advantages:

  • Faster training speed and higher efficiency.
  • Lower memory usage.
  • Better accuracy.
  • Support of parallel and GPU learning.
  • Capable of handling large-scale data.

В Linux LightGBM можно собрать с помощью CMake и gcc или Clang.

Установите CMake.

Выполните следующие команды:

git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM
mkdir build ; cd build
cmake..
make -j4

1
29.06.2020, 23:33
2 ответа

Это инструмент для сопоставления вложенных структур, таких как вложенные скобки.
Математически определенные регулярные выражения не могут соответствовать этому.

\(  ( [^()]*+ | (?R) )*  \)

Посмотреть онлайн(пробелы игнорировать ).

Пожалуйста, прочтите:

1
18.03.2021, 23:23

Канонический пример — сопоставление арифметического выражения, содержащего числа, операторы и подвыражения в скобках:

([0-9]+|\((?R)\))([-+*\/]([0-9]+|\((?R)\)))*
 ^^^^^^ ^^^^^^^^  ^^^^^^^ ^^^^^^ ^^^^^^^^
 number (subexp)   oper   number (subexp)
\______  _______/        \______  _______/
       \/                       \/
  One of those             One of those
                  \__________  ____________/
                             \/
                     Zero or more of those

, то есть соответствие

  • Либо число, либо часть выражения в круглых скобках, за которыми следует
  • Ноль или более раз оператор и либо число, либо подвыражение в круглых скобках.
2
18.03.2021, 23:23

Теги

Похожие вопросы