Java - 具有可用格式的正则表达式

时间:2015-07-22 04:14:46

标签: java regex

请问我如何为下面的格式编写模式正则表达式:

Set {0} = {1}

with: - {0},{1}是任何字符,起始文本是关键字“Set”,空格,{0},空格,“=”,空格,然后是{1}。< / p>

2 个答案:

答案 0 :(得分:1)

很难判断您是否要验证字符串的格式为“Set {0} = {1}”,或者您是否想要知道{0}中存储的内容。 {1}。

无论哪种方式,您都可以使用此模式:

"Set (.+?) = (.+?)"

模式分解:

  • Set - 文字字符串,后跟空格
  • (.+?) - 在组1中捕获一个或多个字符,后跟空格
  • = - 文字字符串,后跟空格
  • (.+?) - 捕获到第2组的一个或多个字符

它允许您验证字符串格式,或获取{0}&amp; {1}。

代码示例:

public static void main(String[] args) throws Exception {
    String setString = "Set aaa = bbb";
    Matcher matcher = Pattern.compile("Set (.+?) = (.+?)").matcher(setString);

    if (matcher.matches()) {
        System.out.println("Success");
        System.out.println(matcher.group(1));
        System.out.println(matcher.group(2));
    } else {
        System.out.println("Failed");
    }
}

结果:

Success
aaa
bbb

如果setString =“SetX aaa = bbb”,那么结果将是:

Failed

答案 1 :(得分:0)

我没有得到正确的问题我想这就是你要找的你需要regx for string
设置aa = bb。

boolean dPort; 
dPort = Pattern.matches("[S][e][t][\\s][A-Za-z]+[\\s][=][\\s][A-Za-z]+", "Set aa = bb"); 
System.out.println(dPort);