正则分组取数字

常用匹配规则:

实例 描述
. 匹配除 "\n" 之外的任何单个字符
\d 匹配数字
\D  匹配非数字

 

Python:


import re

'''
请用python编写函数find_string,从文本中搜索并打印内容,要求支持通配符星号和问号。
\d:匹配所有数字
\D : 匹配所有非数字
(\d*):* 匹配 0个或多个表达式
(\d*):+ 匹配 1个或多个表达式

result.groups() 匹配到的分组列表
result.groups()[0] 得到第一组匹配结果,也就是(\d*)匹配到的
result.groups()[1] 得到第二组匹配结果,也就是第二个 (\d*)匹配到的
因为匹配结果中只有两组,所以如果填 2 时会报错。
'''
def find_string(str_in,pat):
return re.compile(pat).search(str_in);


if __name__=="__main__":
str="入库179.00件"
pat=r'(\d*)\.(\d*)'
result=find_string(str_in=str,pat=pat)
print(result)
print(result.groups()[1])
 

java:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class RegexMatches
{
    public static void main( String[] args ){

      String line = "入库179.00件";
      String pattern = "(\\d+)\\.(\\d+)";
 
      Pattern r = Pattern.compile(pattern);
 
      Matcher m = r.matcher(line);
      if (m.find( )) {
         System.out.println("Found value: " + m.group() );
         System.out.println("Found value: " + m.group(1) );
      } else {
         System.out.println("NO MATCH");
      }
   }
}

 

posted @ 2021-04-28 15:14  keep2021  阅读(134)  评论(0编辑  收藏  举报