java 正则匹配空格字符串 正则表达式截取字符串

 

java 正则匹配空格字符串 正则表达式截取字符串

需求:从一堆sql中取出某些特定字符串:

比如配置的sql语句为:"company_code = @cc and project_id = @pid ; update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 set d=@bb";

我要拿出所有的以@开头的作为变量,并且去重,则如下玩:

ps:其中正则匹配空格是 “\s+”

 

public class Test {
    public static void main(String[] args) {
        //String input = "update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 set d=@bb";
        String input = "company_code = @cc and project_id = @pid ; update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 set d=@bb";

        String patternStr = "(\\s*=\\s*)|(\\s*,\\s*)|(\\s*;\\s*)|(\\s+)";
        Pattern pattern = Pattern.compile(patternStr);
        String[] dataArr = pattern.split(input);
        Set<String> set = new TreeSet<String>();
        for (String str : dataArr) {
            System.out.println(str);
            if (str.startsWith("@")) {
                str = str.replaceAll("@", "");
                set.add(str);
            }
        }
        System.out.println(set);
    }

[aa, bb, cc, cd, pid, ttt]输出如下:

截图如下:

 

后来又优化了一下,既然是找出以@开头的,那么再换一个正则:

public class Tst {
     public static void main(String[] args) {
            //String input = "update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 set d=@bb";
            String input = "company_code = $csc223@cc and project_id = @pid ; update t set a = @aa,b=@cd,c=@cd,ttt=@ttt;update t2 set d=@bb";

            String regex = "@\\w+\\s?";
            //regex = "(\\s*=\\s*)|(\\s*,\\s*)|(\\s*;\\s*)|(\\s+)";
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(input);
            Set<String> set = new TreeSet<String>();

            while(matcher.find()){
                set.add(matcher.group());
            }
            System.out.println(set);
        }
}

2014年11月26日 16:50:31

2015年 2月10日  23:43:45

落雨

394263788

 

时间: 2024-08-31 00:19:33

java 正则匹配空格字符串 正则表达式截取字符串的相关文章

正则表达式截取字符串的方法技巧_正则表达式

有这么一段字符串: [数字]字符串 结果 取  a=数字      b=字符串 截取方法1: int a = Convert.ToInt32(txt1.Text.Trim().Replace('[', ']').Split(']')[1]); string b = txt1.Text.Trim().Replace('[', ']').Split(']')[2]; 截取方法2: string str = "[数字]字符串"; Regex reg = new Regex(@" (

javascript-js问题关于正则表达式截取字符串

问题描述 js问题关于正则表达式截取字符串 @:21101001@+@:21101002@+@:21101003@+@:21101004@.我想截取@:与@之间的数字串,把四个数字串都截出来,该怎么做? 解决方案 var s = '@:21101001@+@:21101002@+@:21101003@+@:21101004@' var m = s.match(/d+/g); console.log(m) 解决方案二: 正则表达式截取字符串通过正则表达式截取字符串正则表达式截取字符串中的数字 解决

java 正则 截取字符串-java 正则匹配String字符串截取问题

问题描述 java 正则匹配String字符串截取问题 比如现在有这样一个字符串 " A4,80列,三层,带双列线,二等分 白色 1200页/箱 ,10箱/包 " 我需要把它分开处理, "A4,80列,三层,带双列线 ,二等分"作为产品的规格,**"白色"**作为产品的颜色,**"1200页/箱 ,10箱/包"**作为产品的包装,现在我想用正则表达式来匹配,但是不知道怎么取写,我只要能分开获取到,剩下的我就可以处理,现在就是分

求个正则表达式截取字符串

问题描述 求个正则表达式截取字符串 如: 3/三星/nz 7/翡翠/n 9/奶茶/n 1/R8/ws 7/饭/n 3/保险/n 6/手机/n 14/三/m 9/端/v 获取,"三星""翡翠""奶茶""R8""饭""保险" 解决方案 如何用正则表达式截取字符串用正则表达式截取字符串通过正则表达式截取字符串 解决方案二: js中貌似是/(?<=/)[a-zA-Z0-94e00-9fa5

正则表达式截取字符串的问题

问题描述 正则表达式截取字符串的问题 早C#中,比如@abc:@abc:@abc如何用正则截取@与:之间的值转为数组 解决方案 (?<=@)w+(?=:) 也可以直接用split string s = "@abc:@abc:@abc"; string[] result = s.Split(new char[] { '@', ':' }, StringSplitOptions.RemoveEmptyEntries); 解决方案二: 正则表达式截取字符串用正则表达式截取字符串如何用正

正则表达式截取字符串急急急急

问题描述 正则表达式截取字符串急急急急 @:2120100301@+@:2120100302@+@:2120100303@+@:2120100304@截取@:与@之间的数字串,再截取运算符号+ 解决方案 String regEx = ""(@:)(d{120})(@)""; String url = ""@:2120100301@+@:2120100302@+@:2120100303@+@:2120100304@""; Pat

关于javascript正则表达式截取字符串的问题

问题描述 关于javascript正则表达式截取字符串的问题 一字符串:"@bji|北京|BJP|0@sha|上海|SHH|1@tji|天津|TJP|2",我要的结果是:{@bji|北京|BJP|0,sha|上海|SHH|1,@tji|天津|TJP|2},javascript怎么用正则表达式分隔成这三部分.小弟对正则表达式实在太瞎 解决方案 var reg="@bji|北京|BJP|0@sha|上海|SHH|1@tji|天津|TJP|2" alert(reg.mat

正则表达式截取字符串的方法技巧

有这么一段字符串: [数字]字符串 结果 取  a=数字 b=字符串 截取方法1: int a = Convert.ToInt32(txt1.Text.Trim().Replace('[', ']').Split(']')[1]); string b = txt1.Text.Trim().Replace('[', ']').Split(']')[2]; 截取方法2: string str = "[数字]字符串"; Regex reg = new Regex(@" ([^]+)

正则验证-java 正则匹配数据中的金钱数字

问题描述 java 正则匹配数据中的金钱数字 A文件数据:1001分店20121231,元旦之际祝您新年快乐身体健康万事如意.您共欠担保公司¥103959.50元.请您尽快偿还欠款,以免扩大损失.您的借款已逾期6天,欠款金额为1988.20元,逾期将影响信用记录,请即刻缴纳.截止 2015年07月01日 您应还金额为:4128元.如有疑问,请联系王先生1101101010.你好,截至到昨天夜里23:59,你欠款34532.32元,请您尽快偿还欠款,以免扩大损失.你好,截至到昨天夜里23:59,你