Как я могу извлечь:
- Строка из n цифр (скажем, 10), которая заканчивается буквой (скажем, "A"), например: 4024204455A.
- 12-значное число, например: 192345006905.
Используя регулярное выражение из нескольких текстовых файлов с помощью Go (golang)?
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 цифр, за которыми следует символ верхнего регистра, вы можете использовать это регулярное выражение с границами слов или привязанным $^
:
<?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
(
)
Похожие вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки, синтаксического анализа и преобразования строк. Поскольку регулярные выражения не полностью стандартизированы, все вопросы с этим тегом должны также включать тег, определяющий применимый язык программирования или инструмент.