Базовое использование библиотеки Regexp Ника Гэммона
Я использую следующий код, измененный из примеров. Я получаю количество совпадений, но фактическое значение не отображается
#include <Regexp.h>
void setup() {
Serial.begin(115200);
MatchState ms;
char buf [100];
char buf2 [100] = "The quick brown fox jumps over the lazy wolf";
ms.Target (buf2);
unsigned int count = ms.MatchCount ("[aeiou]");
Serial.print ("Found ");
Serial.print (count);
Serial.println (" matches.");
for (int j = 0; j < count; j++)
{
Serial.print ("Capture number: ");
Serial.println (j, DEC);
Serial.print ("Text: '");
Serial.print (ms.GetCapture (buf, j));
Serial.println ("'");
}
}
void loop(){}
@P Hemans, 👍0
Обсуждение1 ответ
Лучший ответ:
В регулярном выражении не определены группы захвата.
Регулярное выражение [aeiou]
будет соответствовать любому из этих символов, но не будет захватывать их. Для захвата вам необходимо определить группу захвата, которая представляет собой последовательность токенов, заключенных в круглые скобки. Например:
([aeiou])
В вашей тестовой фразе "Быстрая коричневая лиса перепрыгивает через ленивого волка", которая должна соответствовать 11 разам и захватывать каждое совпадение, что приводит к захвату euioouoeea o.
Причина, по которой сопоставление и захват — это две совершенно разные вещи, заключается в том, что вы можете делать такие вещи, как [aeiou]([aeiou])
, которые захватывают вторую гласную в последовательности из двух гласных. В вашем примере он будет соответствовать ui для quick и захватить только i.
- Как получить исходные файлы для библиотек Arduino?
- Ошибка: "недопустимое использование нестатической функции-члена" при вызове функции из моего собственного класса-метода
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Существуют ли библиотеки сглаживания сигналов для Arduino?
- Wire.h не найден!
- Библиотека FastLED: Как настроить яркость одного пикселя в абсолютном масштабе?
- Как эта строка кода определяет, подключен ли последовательный интерфейс?
- Ошибка Specified folder/zip file does not contain a valid library
Не могли бы вы добавить результат, который вы получаете, к вашему вопросу?, @Gerben