Регулярка для любого символа - C#

Узнай цену своей работы

Формулировка задачи:

как обозначить что может быть любой символ?

Решение задачи: «Регулярка для любого символа»

textual
Листинг программы
$str = '12 + 2.5 * (3 - 4 * (3 - 1) ) - sin( 0.1 * ( 8 - 7 ) ) + 5 * (6 ^ 2 + 7) + sin(0)';
 
$result = array();
 
f($str, $result);
 
print_r($result);
 
function f($str, &$r) {
 
  preg_replace_callback(
  '@
  ( \d+(?:\.\d+)?
  | [-+*^]
  | (?:sin|cos)
  | \( ([^()]+ | (?1) )*+ \)
  )
  @x',
  function ($m) use(&$r) {
    if (isset($m[2])) {
    // если найдено выражение в скобках
    // отрезаем скобки и парсим снова
      $a = array();
      f(substr($m[0], 1, -1), $a);
      $r[] = $a;
    } else {
    // если найден обычный элемент
    // просто добавляем его к результату
      $r[] = $m[0];
    }
  }, $str);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5