正则表达式-提取数字n字符



如何使用正则表达式从1960102214217F中提取数字n字符??

我尝试过类似([0-9*])+([A-Z*])的东西,但结果返回Match失败!!

您可以使用以下perl代码找到它:

$v = "1960102214217F";
$v =~ s/^(d+)D*$/$1/;

这意味着正则表达式/^(d+)D*$/将为您找到一个数字。这里CCD_ 3和CCD_。d代表数字,D代表不是数字的一切。

使用

([0-9]+)([A-Z])

*会破坏数字匹配。

在.NET:中尝试这个

([0-9]+)

如果你在做.NET:RegExp Designer ,你可能会发现这个软件很方便

*需要在括号外,而不是在括号内。

所以试试

([0-9]*)+([A-Z]*)
[0-9]+[A-Z]* 

将与之匹配。它只是意味着一个或多个数字字符,后面有零个或更多的大写字母。这就是你想要的吗?如果你只想得到一个字母(只有一个(,你可以使用:

(?<=d+)([A-Z]{1})$
  • (?<=\d+(是对一个或多个数字的查找
  • ([A-Z]*(是匹配组,将匹配一个或多个数字后面的零个或多个子大写字母
  • $是字符串的末尾

Look behinds将不包括在比赛中。

最新更新