用正则进行字符串切分的一个应用

原创 2007年09月28日 10:37:00

想解决下面一个问题:

比如给定下面一个字符串,你好:<USER_NAME> ,这是您第<LOGIN_NUMBER>次登录。
我想把<>里的文字替换成别的,比如替换成从数据库中读取出来的数据。

如果还需要注意这样一个问题:<和>如果是真实的字符怎么办?
我是这样想的,用字符/<代表真正的<.也就是/,<,>均具有特殊含义。必须用//,/<,/>来代替。

我是这样想的,用正则表达式区分割,先把/转化了,再转化<和>.
虽然实现了,但总觉得写的不好。刚学正则,不大会用。
高人指点下。
感觉这段程序很实用。希望能完善。大家帮忙想想啊。
具体的程序如下:
String regEx = "/<";
        String st r= "/函数一://<flag1> 函数2: <flag2 > 测试 <flag3>";
  Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(str);
       
       String s1 = "";
       int startPos = 0;
       int start = 0;
       int end = 0;
       System.out.println("length:"+str.length());
        while(m.find()){
         
         star t= m.start();
            end = m.end();
         System.out.println("start:"+start+"   end: "+end);
         s1+ = str.substring(startPos,start)+str.substring(start+1,end);
         startPos = end;
         System.out.println(s1);
        }
       if(end<=str.length()){
        s1+=str.substring(end);
        System.out.println(s1);
       }
      
      
      
    
      
       String reg1 = "<[^<][^>]*([^/]>)";
       p = Pattern.compile(reg1);
       m = p.matcher(s1);
      startPos = 0;
      start=0;
      end=0;
     
     System.out.println("length:"+s1.length());
      while(m.find()){
       
        start = m.start();
         end = m.end();
       System.out.println("start:"+start+"   end: "+end);
       
       System.out.println("非转义字符:"+s1.substring(startPos,start));
       System.out.println("转义字符:"+s1.substring(start,end));
       
       startPos = end;
     
      }
    
      if(end<s1.length()){
      
       System.out.println("非转义字符: "+s1.substring(end,s1.length()));
      }
    

 

正则表达式 以 +-*/ 分割字符串

在网上找了很久都没找到,自己记录下来 eg:  var str = "col9*4+col10*col11/col12-col12"; var arr = []; arr = str.spli...
  • sinat_35920314
  • sinat_35920314
  • 2017年09月14日 13:54
  • 181

logstash 用 logrotate 来做日志切分

简介: logrotate 是一个日志切分工具。一般要结合cron一起工作。 logstash 是日志集中管理工具,但输出到文件时不能自动按大小切分(目前只能按日期)...
  • qingshanli1988
  • qingshanli1988
  • 2015年03月06日 17:04
  • 1247

正则表达式之匹配和切割

/* * 正则表达式:符合一定规则的表达式 * 作用:用于专门操作字符串 * 特点:用一些特定的符号来表示代码的操作,简化书写 * 所以学习正则表达式就是学习一些特定的符号的使用...
  • wuxiushu
  • wuxiushu
  • 2016年08月06日 01:53
  • 1322

正则表达式-2(字符串切割)+(字符串按正则表达式替换)

超循环输出 for(String s : arr) { System.out.println(s); } } str:进行切割的字符串  reg:切割的标志 class Stri...
  • dingjingchao
  • dingjingchao
  • 2016年11月08日 11:25
  • 1302

java截取字符串,截串,substring和split,分割字母和数字,正则缝隙

转自:My Rhythm     的博客。总结得很好。 java截取字符串,截串,substring和split,分割字母和数字,正则缝隙 关键字: java截取字符串 截串 substr...
  • yangchunshang
  • yangchunshang
  • 2017年03月08日 12:24
  • 484

java 正则表达式高级篇(四种常用的处理方式:匹配 分割 替代 获取)

写个代码真的不容易,希望大家支持一下,纯手工的代码,这次主要是想重新的使用一下正则表达式所以重新的使用了起来,因为正则表达式真的很重要,功能很强大。所以又翻出来看看。...
  • sai739295732
  • sai739295732
  • 2015年07月02日 23:51
  • 2123

浅谈通过正则表达式查找字符串

经常需要在文本中,查找某个子串是否存在。需求其实很简单,但每次去翻很长很长的正则表达式教程,都觉得特别吐血。因此特此做下记录:针对我这种简单需求,如何写正则表达式呢? 需求:在文本中查找一段字符串...
  • lizeyang
  • lizeyang
  • 2013年08月29日 19:39
  • 5624

用JAVA正则表达式 删除字符串的特定子串

转载自:http://chwshuang.iteye.com/blog/1097444 有些字符串是我们存储某种类型名称的,往往有逗号‘,’或者其他符号来分隔。如果我们删除某一个参数时,往往没...
  • u011026968
  • u011026968
  • 2015年05月08日 20:06
  • 4302

字符串切分函数:strtok与strtok_r

strtok函数     函数原型:char *strtok(char str[], const char *delim)。     功能:分解字符串为一组字符串,str为要分解的字符串,deli...
  • l344431432
  • l344431432
  • 2013年01月14日 23:37
  • 3031

C#字符串和正则表达式

0.string类 简单字符串操作用string类,对应IL中的System.String类,有很多足够常用的字符串操作,但是频繁操作效率非常低下,所以其它方式的字符串操作同样必不可缺。每次生成一个...
  • Blues1021
  • Blues1021
  • 2015年10月03日 18:34
  • 1939
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用正则进行字符串切分的一个应用
举报原因:
原因补充:

(最多只允许输入30个字)