Как я могу извлечь:

  1. Строка из n цифр (скажем, 10), которая заканчивается буквой (скажем, "A"), например: 4024204455A.
  2. 12-значное число, например: 192345006905.

Используя регулярное выражение из нескольких текстовых файлов с помощью Go (golang)?

-5
ruwanego 13 Мар 2018 в 12:30

2 ответа

Лучший ответ

Вы можете сопоставить 12 цифр [0-9]{12} или 10 цифр и символ верхнего регистра [0-9]{10}[A-Z] с помощью или | в группе без захвата (?:, например:

^(?:[0-9]{12}|[0-9]{10}[A-Z])$

Или сопоставьте свои значения между границами слов \b:

\b(?:[0-9]{12}|[0-9]{10}[A-Z])\b

Чтобы сопоставить одну или несколько цифр ИЛИ 10 цифр, за которыми следует символ верхнего регистра, вы можете использовать это регулярное выражение с границами слов или привязанным $^:

\b(?:[0-9]+|[0-9]{10}[A-Z])\b

1
The fourth bird 13 Мар 2018 в 11:21
<?php
$input = array();
$input[] = '123456789000A';
$input[] = '123456789012';
$input[] = '12345678901';

foreach($input as $i)
{
    preg_match("/^([0-9]+[a-z]{1}|[0-9]{12})$/i", $i, $m);
    print_r($m);
}

Результат: первое совпадение, второе совпадение, третье совпадение

Array
(
    [0] => 123456789000A
    [1] => 123456789000A
)
Array
(
    [0] => 123456789012
    [1] => 123456789012
)
Array
(
)
0
ZiTAL 13 Мар 2018 в 09:50