У меня CUSTOM_PROMPT_REGX
шаблон с особыми условиями.
Предполагается захватить 10 текстов, которые следуют друг за другом с |
или #
в качестве разделителей.
Каждый из них может быть пустым, поэтому между |
или #
нет символов, и он будет выглядеть как "..|#..."
Мой код:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define CUSTOM_PROMPT_REGX "@%39[^|]|%39[^#]#%39[^|]|%39[^#]#%39[^|]|%39[^#]#%39[^|]|%39[^#]#%39[^|]|%39[^@]@"
static unsigned char lines[5][2][40];
int main(void)
{
memset(lines, 0, sizeof(lines));
int j = sscanf("@1.SALAM|818BF4F2A8#2.BINGO|828BF8F0F7FE93#3.GOOGLE|838BF1F0F8F0#|#5.WINE|858BF6FE90F8@", CUSTOM_PROMPT_REGX,
lines[0][0], lines[0][1], lines[1][0], lines[1][1],
lines[2][0], lines[2][1], lines[3][0], lines[3][1], lines[4][0], lines[4][1]);
printf("%d\n[%s <=> %s]\n[%s <=> %s]\n[%s <=> %s]\n[%s <=> %s]\n[%s <=> %s]\n", j,
lines[0][0], lines[0][1], lines[1][0], lines[1][1], lines[2][0], lines[2][1],
lines[3][0], lines[3][1], lines[4][0], lines[4][1]);
return 0;
}
и результат:
6
[1.SALAM <=> 818BF4F2A8]
[2.BINGO <=> 828BF8F0F7FE93]
[3.GOOGLE <=> 838BF1F0F8F0]
[ <=> ]
[ <=> ]
Press <RETURN> to close this window...
Должно быть:
8
[1.SALAM <=> 818BF4F2A8]
[2.BINGO <=> 828BF8F0F7FE93]
[3.GOOGLE <=> 838BF1F0F8F0]
[ <=> ]
[5.WINE <=> 858BF6FE90F8]
Есть ли что-то, что я могу добавить к CUSTOM_PROMPT_REGX
, чтобы решить мою проблему?