Mercurial Hosting > luan
diff src/luan/modules/StringLuan.java @ 1722:7d2ab44f7a59
remove String regex fns
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 29 Jul 2022 14:12:01 -0600 |
parents | 5c69d2e8bd75 |
children | e59349d53fec |
line wrap: on
line diff
--- a/src/luan/modules/StringLuan.java Tue Jul 26 12:44:52 2022 -0600 +++ b/src/luan/modules/StringLuan.java Fri Jul 29 14:12:01 2022 -0600 @@ -2,8 +2,6 @@ import java.security.NoSuchAlgorithmException; import java.util.Arrays; -import java.util.regex.Pattern; -import java.util.regex.Matcher; import goodjava.util.GoodUtils; import luan.Luan; import luan.LuanTable; @@ -99,100 +97,6 @@ return i == -1 ? null : new Integer[]{i+1,i+s2.length()}; } - public static String[] match(String s,String pattern,Integer init) { - int start = start(s,init,0); - Matcher m = Pattern.compile(pattern).matcher(s); - if( !m.find(start) ) - return null; - int n = m.groupCount(); - if( n == 0 ) - return new String[]{m.group()}; - String[] rtn = new String[n]; - for( int i=0; i<n; i++ ) { - rtn[i] = m.group(i+1); - } - return rtn; - } - - public static LuanFunction gmatch(String s,String pattern) throws LuanException { - Utils.checkNotNull(s); - Utils.checkNotNull(pattern,2); - final Matcher m = Pattern.compile(pattern).matcher(s); - return new LuanFunction() { - @Override public Object call(Luan luan,Object[] args) { - if( !m.find() ) - return null; - final int n = m.groupCount(); - if( n == 0 ) - return m.group(); - String[] rtn = new String[n]; - for( int i=0; i<n; i++ ) { - rtn[i] = m.group(i+1); - } - return rtn; - } - }; - } - - public static Object[] gsub(Luan luan,String s,String pattern,Object repl,Integer n) throws LuanException { - Utils.checkNotNull(s); - int max = n==null ? Integer.MAX_VALUE : n; - final Matcher m = Pattern.compile(pattern).matcher(s); - if( repl instanceof String ) { - String replacement = (String)repl; - int i = 0; - StringBuffer sb = new StringBuffer(); - while( i<max && m.find() ) { - m.appendReplacement(sb,replacement); - i++; - } - m.appendTail(sb); - return new Object[]{ sb.toString(), i }; - } - if( repl instanceof LuanTable ) { - LuanTable t = (LuanTable)repl; - int i = 0; - StringBuffer sb = new StringBuffer(); - while( i<max && m.find() ) { - String match = m.groupCount()==0 ? m.group() : m.group(1); - Object val = t.get(luan,match); - if( val != null ) { - String replacement = luan.luanToString(val); - m.appendReplacement(sb,replacement); - } - i++; - } - m.appendTail(sb); - return new Object[]{ sb.toString(), i }; - } - if( repl instanceof LuanFunction ) { - LuanFunction fn = (LuanFunction)repl; - int i = 0; - StringBuffer sb = new StringBuffer(); - while( i<max && m.find() ) { - Object[] args; - final int count = m.groupCount(); - if( count == 0 ) { - args = new String[]{m.group()}; - } else { - args = new String[count]; - for( int j=0; j<count; j++ ) { - args[j] = m.group(j+1); - } - } - Object val = Luan.first( fn.call(luan,args) ); - if( val != null ) { - String replacement = luan.luanToString(val); - m.appendReplacement(sb,replacement); - } - i++; - } - m.appendTail(sb); - return new Object[]{ sb.toString(), i }; - } - throw new LuanException( "bad argument #3 to 'gsub' (string/function/table expected)" ); - } - // note - String.format() is too stupid to convert between ints and floats. public static String format(String format,Object... args) { return String.format(format,args); @@ -214,11 +118,6 @@ return null; } - public static boolean matches(String s,String pattern) throws LuanException { - Utils.checkNotNull(s); - return Pattern.compile(pattern).matcher(s).find(); - } - public static String[] split(String s,String s2,Integer limit) throws LuanException { Utils.checkNotNull(s); Utils.checkNotNull(s2,2);