如何使用正则表达式从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将不包括在比赛中。