Одна важная вещь для передачи многомерных массивов:
First array dimension
не требуется указывать. Second(any any further)dimension
необходимо указать. 1. Когда только второе измерение доступно глобально (либо как макрос, либо как глобальная константа)
`const int N = 3;
`void print(int arr[][N], int m)
{
int i, j;
for (i = 0; i < m; i++)
for (j = 0; j < N; j++)
printf("%d ", arr[i][j]);
}`
int main()
{
int arr[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
print(arr, 3);
return 0;
}`
2. Использование одного указателя: в этом методе мы должны 2D-массив при переходе к функции.
`void print(int *arr, int m, int n)
{
int i, j;
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
printf("%d ", *((arr+i*n) + j));
}
`int main()
{
int arr[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int m = 3, n = 3;
// We can also use "print(&arr[0][0], m, n);"
print((int *)arr, m, n);
return 0;
}`
Я предлагаю использовать
'regex:/.*@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i'
Или
'regex:/@(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))/i'
Подробности
@
- символ @
(?:bournemouth\.ac\.uk|nhs\.(?:net|uk))
- группа без захвата, соответствующая bournemouth\.ac\.uk
- строка bournemouth.ac.uk
|
- или nhs.
, за которым следуют net
или uk
. Обратите внимание, что буквенные точки экранированы, внутри шаблона между пробелами нет пробелов, а флаг i
устанавливается только в конце регулярного выражения.