如何使用正则表达式从1960102214217F中提取数字n字符?
我尝试过这样的事情([0-9*])\+([A-Z*])
,但结果返回匹配失败!!
答案 0 :(得分:3)
您可以使用以下perl代码找到它:
$v = "1960102214217F";
$v =~ s/^(\d+)\D*$/$1/;
这意味着正则表达式/^(\d+)\D*$/
会为您找到一个数字。这里^
和$
相应地是字符串的开头和结尾。 \d
代表数字,\D
代表不是数字的所有内容。
答案 1 :(得分:1)
使用
([0-9]+)([A-Z])
*
会弄乱数字匹配。
答案 2 :(得分:0)
答案 3 :(得分:0)
*需要在括号之外,而不是在括号内。
所以试试
([0-9]*)+([A-Z]*)
答案 4 :(得分:0)
[0-9]+[A-Z]*
将匹配。它只是表示一个或多个带有零个或多个大写字母的数字字符。那是你想要的吗? 如果您只想获得单个字母(只有一个),您可以使用:
(?<=\d+)([A-Z]{1})$
比赛中不包括后卫。