Java - 查找正则表达式以匹配字符串

时间:2016-05-04 09:52:54

标签: java regex

我需要一些帮助,因为我是初级Java,经过一些网络研究 我无法找到解决方案。 所以我的问题是:

String str : size="A4"

我想提取A4'用正则表达式给出" size"在正则表达式。 我能怎么做 ?

2 个答案:

答案 0 :(得分:1)

  1. 创建符合条件的模式java.util.regex.Pattern
  2. 生成处理输入字符串
  3. 的匹配器java.util.regex.Matcher
  4. 让Matcher找到所需的值(使用Matcher.group(group)
  5. //1. create Pattern
    Pattern p = Pattern.compile("size=\\\"([A-Za-z0-9]{2})\\\"");
    
    //2. generate Matcher
    Matcher m = p.matcher(myString);
    
    //3. find value using groups(int)
    if(m.find()) {
        System.out.println( m.group(1) );
    }
    

答案 1 :(得分:1)

import java.util.*;
import java.util.regex.*;
import java.lang.*;
import java.io.*;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Matcher m=Pattern.compile("size\\s*=\\s*\"([^\"]*)\"").matcher("size=\"A4\"");
        while(m.find())
            System.out.println(m.group(1));
    }
}

输出:

A4

http://ideone.com/FqMuTA

正则表达式细分:

size\\s*=\\s*\"([^\"]*)\"

  • size字面上匹配size
  • \\s*=\\s*匹配0个或更多前导或尾随的空格 =签署
  • \"匹配双引号
  • ([^\"]*)匹配0个或更多字符(不是双引号) [^\"])并记住捕获的文本作为反向引用1,即 除了在while循环中使用下面捕获的组号1之外什么都没有。
  • \"我们匹配结束双引号

您可以在regex here

上找到更多信息