【问题标题】:Regex for a n digit number that ends with a particular letter以特定字母结尾的 n 位数字的正则表达式
【发布时间】:2018-08-21 11:52:16
【问题描述】:

如何提取:

  1. 以字母结尾的 n 位(例如 10)字符串(例如“A”),例如:4024204455A
  2. 12 位数字,例如:192345006905

在 Go (golang) 的多个文本文件中使用正则表达式?

【问题讨论】:

  • 我怎样才能 1. 得到你的尝试? 2. 获取您当前正在运行的 lang?

标签: regex go text-processing


【解决方案1】:
<?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
(
)

【讨论】:

  • 当问题标记为 Go 时,为什么要显示 PHP 代码?
  • @icza:阅读对问题的评论:“我怎样才能 1. 获得您的尝试?2. 获得您当前正在运行的语言?”检查修订历史记录:stackoverflow.com/revisions/49252535/2。发布此答案后,将 go 标签添加到原始问题中。
【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2021-05-06
    • 2013-10-27
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多