正则表达式以n位数字结尾,以特定字母

时间:2018-03-13 09:30:10

标签: regex go text-processing

我如何提取:

  1. 带有n个数字(例如10个)的字符串,以字母结尾(例如“A”),例如:4024204455A
  2. 12位数字,例如:192345006905
  3. 使用正则表达式,使用Go(golang)多个文本文件?

2 个答案:

答案 0 :(得分:1)

您可以使用非捕获组[0-9]{12}中的或[0-9]{10}[A-Z]匹配12位|或10位数字和大写字符(?:,例如:

^(?:[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 :(得分:0)

<?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
(
)