Changeset 5637 for lang/scala/sandbox

Show
Ignore:
Timestamp:
01/27/08 19:06:40 (5 years ago)
Author:
keisuken
Message:

Utility method add.

M jp/ne/cappuccino/keisuken/util/regex/Regex.scala

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/scala/sandbox/src/jp/ne/cappuccino/keisuken/util/regex/Regex.scala

    r5616 r5637  
    88import java.util.regex._ 
    99 
     10/** 
     11 * Regex library. 
     12 * @author   NISHIMOTO Keisuke. 
     13 */ 
    1014class Regex(pat: Pattern) { 
    1115  def this(regex: String) = this(Pattern.compile(regex)) 
     
    3034    matched 
    3135  } 
     36  def first: String = { 
     37    mat.reset() 
     38    if(mat.find()) input.substring(mat.start(), mat.end()) else null 
     39  } 
     40  def last: String = { 
     41    var start: Int = 0 
     42    var end: Int = 0 
     43    mat.reset() 
     44    while(mat.find()) {start = mat.start(); end = mat.end()} 
     45    if(start >= 0 & start != end) input.substring(start, end) else null 
     46  } 
    3247} 
    3348 
     
    3550  def apply(regex: String) = new Regex(regex) 
    3651  def apply(regex: String, input: String) = new Regex(regex).matches(input) 
     52  def quote(input: String): String = Pattern.quote(input) 
    3753} 
    3854 
     
    4763      println(str) 
    4864    } 
     65    println(RE.quote("This is a pen.")); 
     66    println(RE("[A-Za-z]+", "This is a pen.").first); 
     67    println(RE("[A-Za-z]+", "This is a pen.").last); 
    4968  } 
    5069}