【发布时间】:2018-08-21 11:52:16
【问题描述】:
如何提取:
- 以字母结尾的 n 位(例如 10)字符串(例如“A”),例如:4024204455A
- 12 位数字,例如:192345006905
在 Go (golang) 的多个文本文件中使用正则表达式?
【问题讨论】:
-
我怎样才能 1. 得到你的尝试? 2. 获取您当前正在运行的 lang?
标签: regex go text-processing
如何提取:
在 Go (golang) 的多个文本文件中使用正则表达式?
【问题讨论】:
标签: regex go text-processing
<?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
(
)
【讨论】:
您可以在非捕获组(?: 中使用或| 匹配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 个数字后跟一个大写字符,您可以使用这个带有单词边界或锚定 $^ 的正则表达式:
【讨论】: