слияние с использованием C, вывод идет не так

<\s*(\w+)[^/>]*>

Объясненные детали:

<: начальный символ

\s*: он может иметь пробелы перед именем тега (уродливым, но возможным).

(\w+): теги могут содержать буквы и цифры (h1). Ну, \w также соответствует «_», но это не мешает, я думаю. Если любопытное использование ([a-zA-Z0-9] +).

[^/>]*: все, кроме > и /, до закрытия >

>: закрытие >

UNRELATED

И для парней, которые недооценивают регулярные выражения, говоря, что они только настолько сильны, как обычные языки:

anbanban, который не является регулярный и даже контекстно-свободный, можно сопоставить с ^(a+)b\1b\1$

Обратное обращение FTW !

0
задан can wang 17 January 2019 в 15:48
поделиться

1 ответ

Добавьте код, показанный ниже, в конец слияния, чтобы скопировать данные обратно. Есть более эффективные способы сделать это, чтобы избежать шага копирования назад, но по крайней мере это исправляет код.

void merge(float x[], float y[], int l, int m, int r)
{
    /* after the last line in merge, (y[ptr_y++] = x[ptr_2++];) */
    /* add this code to copy from y[] back to x[] */

    for(ptr_1 = l; ptr_1 <= r; ptr1++)
        x[ptr_1] = y[ptr_1];
}
0
ответ дан rcgldr 17 January 2019 в 15:48
поделиться
Другие вопросы по тегам:

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