永发信息网

java正则表达式替换一段字符串

答案:2  悬赏:30  手机版
解决时间 2021-02-21 02:37
遇到一个需求是需要将数据库查询语言中的from后的所有字段全部原样取出,在from前加上select count(*), 如下

```
" Select a from " + TbItem.class.getName() + " a " + " where a.id= :id"
替换成
“ Select count(*) from " + TbItem.class.getName() + " a " + " where a.id= :id”
```
或者

```
"from Employee e where e.name = :name"
替换成
“select cout(*) from Employee e where e.name = :name”
```

因为有的语句没有select,所以要定位到from前替换
最佳答案
Java正则表达式  .*(from.*)$   替换成  select count(*) $1
完整的Java替换程序如下
public class AA {
 public static void main(String[] args) {
  String s=" Select a from xxx a " + " where a.id= :id";
  String regex = ".*(from.*)$";
  String result=s.replaceAll(regex,"select count(*) $1");
  System.out.println(result);
 }
}

运行结果
select count(*) from xxx a  where a.id= :id
因为我不知道TbItem.class.getName()方法返回的表名,所以用xxx代替.
你可以用String s=" Select a from " + TbItem.class.getName() + " a " + " where a.id= :id";没问题不用改.
全部回答
import java.util.regex.matcher; import java.util.regex.pattern; public class testregex { public static void main( string[] args ) {    string regex = "第[0-9]*条";    string str = "第9条,数据错误,错误信息,第jjj哦条哦条我的条件如何?第221条xx";    pattern pat = pattern.compile(regex);      matcher matcher = pat.matcher(str);         while (matcher.find()) {       string temp = str.substring(matcher.start(),matcher.end());      str = str.replaceall(temp, temp.substring(0,temp.lastindexof("条"))+"行");    }         system.out.println(str);  } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
鼠标指针老突然移到左上角是怎么回事?
氩气放置两年能否正常使用?
龙泉驿区国威搏击俱乐部怎么去啊,有知道地址
深海泥·水洗雪肤体膜,是不是有副作用
【fcl】请问在国际贸易中20’FCL和20’’FCL
无线如何加密
我是做文玩生意的,我想推广微信号,该怎么做
【pdca循环的四个阶段】质量管理中PDCA循环的
肝肾阴虚应该吃什么药,请专业人士的来
鸟语林度假村地址在哪,我要去那里办事
甲发现路边一辆奥迪汽车没有锁、趁着夜色将车
陕西高速电子工程有限公司(高新三路)在哪里啊
食用油便宜了,汽油却贵了?
54制 寒假生活指导 山东教育出版社
(2009)饰面板(砖)工程应对下列材料性能指标
推荐资讯
丹阳火车站南广场-停车场我想知道这个在什么
SPSS13.0怎么安装
我想成立一个服装打版工作室该如何做?如何找
关于淘宝退款物流的红章证明。急!
向阳小学四年级一班共有学生48人,其中参加数
交口县人民医院-急诊地址在哪,我要去那里办
别问我中秋子们公司发了啥?我最后再说一遍
澳门一共有多少家酒店?多少家五星级酒店?
歌词:幸福时光,就要来到。是什么歌?
彭州市文化馆老年培训中心在什么地方啊,我要
全新途胜1.6t领先型有座椅电加热吗
在兵马俑怎么吃午饭
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?