Package com.firefly.utils.pattern

Examples of com.firefly.utils.pattern.Pattern$HeadMatch


import com.firefly.utils.pattern.Pattern;

public class TestPattern {
  @Test
  public void testPattern() {
    Pattern p = Pattern.compile("?ddaaad?", "?");
    Assert.assertThat(p.match("ddaaad")[1], is(""));
    Assert.assertThat(p.match("ddaaadxwww")[1], is("xwww"));
    Assert.assertThat(p.match("addaaadxwww")[1], is("xwww"));
    Assert.assertThat(p.match("addaaadxwww")[0], is("a"));
    Assert.assertThat(p.match("addaaad")[0], is("a"));
    Assert.assertThat(p.match("orange"), nullValue());
   
    p = Pattern.compile("?", "?");
    Assert.assertThat(p.match("orange")[0], is("orange"));
   
    p = Pattern.compile("??????", "?");
    Assert.assertThat(p.match("orange")[0], is("orange"));
    Assert.assertThat(p.match("orange").length, is(1));
   
    p = Pattern.compile("org", "?");
    Assert.assertThat(p.match("orange"), nullValue());
    Assert.assertThat(p.match("org").length, is(0));
   
    p = Pattern.compile("?org", "?");
    Assert.assertThat(p.match("org")[0], is(""));
    Assert.assertThat(p.match("aassorg")[0], is("aass"));
    Assert.assertThat(p.match("ssorg").length, is(1));
   
    p = Pattern.compile("org?", "?");
    Assert.assertThat(p.match("org")[0], is(""));
    Assert.assertThat(p.match("orgaaa")[0], is("aaa"));
    Assert.assertThat(p.match("orgaaa").length, is(1));
   
    p = Pattern.compile("www.?.com?", "?");
    Assert.assertThat(p.match("www.fireflysource.com")[0], is("fireflysource"));
    Assert.assertThat(p.match("www.fireflysource.com")[1], is(""));
    Assert.assertThat(p.match("www.fireflysource.com/cn/")[1], is("/cn/"));
    Assert.assertThat(p.match("www.fireflysource.com/cn/").length, is(2));
    Assert.assertThat(p.match("orange"), nullValue());
   
    p = Pattern.compile("www.?.com/?/app", "?");
    Assert.assertThat(p.match("orange"), nullValue());
    Assert.assertThat(p.match("www.fireflysource.com/cn/app").length, is(2));
    Assert.assertThat(p.match("www.fireflysource.com/cn/app")[0], is("fireflysource"));
    Assert.assertThat(p.match("www.fireflysource.com/cn/app")[1], is("cn"));
   
    p = Pattern.compile("?www.?.com/?/app", "?");
    Assert.assertThat(p.match("orange"), nullValue());
    Assert.assertThat(p.match("www.fireflysource.com/cn/app").length, is(3));
    Assert.assertThat(p.match("www.fireflysource.com/cn/app")[0], is(""));
    Assert.assertThat(p.match("www.fireflysource.com/cn/app")[1], is("fireflysource"));
    Assert.assertThat(p.match("www.fireflysource.com/cn/app")[2], is("cn"));
    Assert.assertThat(p.match("http://www.fireflysource.com/cn/app")[0], is("http://"));
   
    p = Pattern.compile("?www.?.com/?/app?", "?");
    Assert.assertThat(p.match("orange"), nullValue());
    Assert.assertThat(p.match("www.fireflysource.com/cn/app").length, is(4));
    Assert.assertThat(p.match("www.fireflysource.com/cn/app")[0], is(""));
    Assert.assertThat(p.match("www.fireflysource.com/cn/app")[1], is("fireflysource"));
    Assert.assertThat(p.match("www.fireflysource.com/cn/app")[2], is("cn"));
    Assert.assertThat(p.match("http://www.fireflysource.com/cn/app")[0], is("http://"));
    Assert.assertThat(p.match("http://www.fireflysource.com/cn/app")[3], is(""));
    Assert.assertThat(p.match("http://www.fireflysource.com/cn/app/1334")[3], is("/1334"));
   
    p = Pattern.compile("abc*abc", "*");
    Assert.assertThat(p.match("abcabcabc")[0], is(""));
   
    p = Pattern.compile("aa*aa", "*");
    Assert.assertThat(p.match("aaaaa")[0], is(""));
  }
View Full Code Here


  public static void main(String[] args) {
    int times = 10000000;
   
    java.util.regex.Pattern p0 = java.util.regex.Pattern.compile("(.*)www.(.*).com/(.*)/app(.*)");
    java.util.regex.Pattern p1 = java.util.regex.Pattern.compile("(.*?)www.(.*?).com/(.*?)/app(.*?)");   
    Pattern p2 = Pattern.compile("?www.?.com/?/app?", "?");
   
    // 贪婪匹配
    long start = System.currentTimeMillis();
    for (int i = 0; i < times; i++) {
      java.util.regex.Matcher m = p0.matcher("http://www.fireflysource.com/cn/app/1334");
      m.matches();
      m.group(1);
    }
    System.out.println("regex greedy: " + (System.currentTimeMillis() - start));
   
    // 勉强匹配
    start = System.currentTimeMillis();
    for (int i = 0; i < times; i++) {
      java.util.regex.Matcher m = p1.matcher("http://www.fireflysource.com/cn/app/1334");
      m.matches();
      m.group(1);
    }
    System.out.println("regex reluctant: " + (System.currentTimeMillis() - start));
   
    // 简单匹配
    start = System.currentTimeMillis();
    for (int i = 0; i < times; i++) {
      p2.match("http://www.fireflysource.com/cn/app/1334");
    }
    System.out.println("simple: " + (System.currentTimeMillis() - start));
  }
View Full Code Here

TOP

Related Classes of com.firefly.utils.pattern.Pattern$HeadMatch

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.