mirror of
https://github.com/lsdlsd88/JC4827W543.git
synced 2026-05-05 16:39:27 +01:00
52 lines
1.3 KiB
Plaintext
52 lines
1.3 KiB
Plaintext
#include <Regexp.h>
|
|
|
|
// called for each match
|
|
void match_callback (const char * match, // matching string (not null-terminated)
|
|
const unsigned int length, // length of matching string
|
|
const MatchState & ms) // MatchState in use (to get captures)
|
|
{
|
|
char cap [10]; // must be large enough to hold captures
|
|
|
|
Serial.print ("Matched: ");
|
|
Serial.write ((byte *) match, length);
|
|
Serial.println ();
|
|
|
|
for (byte i = 0; i < ms.level; i++)
|
|
{
|
|
Serial.print ("Capture ");
|
|
Serial.print (i, DEC);
|
|
Serial.print (" = ");
|
|
ms.GetCapture (cap, i);
|
|
Serial.println (cap);
|
|
} // end of for each capture
|
|
|
|
} // end of match_callback
|
|
|
|
|
|
void setup ()
|
|
{
|
|
Serial.begin (115200);
|
|
Serial.println ();
|
|
unsigned long count;
|
|
|
|
// what we are searching (the target)
|
|
char buf [100] = "The quick brown fox jumps over the lazy wolf";
|
|
|
|
// match state object
|
|
MatchState ms (buf);
|
|
|
|
// original buffer
|
|
Serial.println (buf);
|
|
|
|
// search for three letters followed by a space (two captures)
|
|
count = ms.GlobalMatch ("(%a+)( )", match_callback);
|
|
|
|
// show results
|
|
Serial.print ("Found ");
|
|
Serial.print (count); // 8 in this case
|
|
Serial.println (" matches.");
|
|
|
|
|
|
} // end of setup
|
|
|
|
void loop () {} |