请教一个string.replaceall正则问题

问题描述

有个url比如:http://test.com/test.do?aaa=1&bbb=234&ccc=567我现在要用string.replaceall把“&bbb=234”替换成空,怎么写正则,bbb参数名是已知的,后面的参数值未知,也就是长度未知,怎么通过正则替换呢?最后替换后的结果是http://test.com/test.do?aaa=1&ccc=567

解决方案

解决方案二:
haveatryStrings="http://test.com/test.do?aaa=1&bbb=234&ccc=567";Stringss=s.replaceAll("bbb=.*&","");System.out.println(ss);

解决方案三:
那不是把后面的&也去了。。值常见的只有数字,字母吧。。
解决方案四:
引用2楼leehomwong的回复:

那不是把后面的&也去了。。值常见的只有数字,字母吧。。

bbb前面不是还有个&吗?应该需要这特殊字符,否则没法判断到哪开始属于ccc
解决方案五:
s.replaceAll("bbb=.*?&","");这个地方要小心,假如正则不应该是贪婪式正则,要加勉强型的。
解决方案六:
Strings="http://test.com/test.do?aaa=1&bbb=234&ccc=567";Stringss=s.replaceAll("bbb=.+&","");System.out.println(ss);

加号好呢还是乘号好呢?
解决方案七:
importjava.util.regex.*;publicclassTest2{publicstaticvoidmain(String[]args){Stringstr="http://test.com/test.do?aaa=1&bbb=234&ccc=567";Stringpat="&bbb=\d+";Patternp=Pattern.compile(pat);Matcherm=p.matcher(str);StringnewString=m.replaceAll("");System.out.println(newString);}}输出结果为:http://test.com/test.do?aaa=1&ccc=567
解决方案八:
&bbb=[^&]*
解决方案九:
引用7楼bao110908的回复:

&bbb=[^&]*

hao.

时间: 2024-11-18 17:23:18

请教一个string.replaceall正则问题的相关文章

求一个正则表达式(正则高手来,小弟谢过了)

问题描述 求一个正则表达式(正则高手来,小弟谢过了) 在java代码中,有一个字符串 String str = "aa{bb}cc{{dd}}ee": 我用str的replace()方法: 求一个替换str中的字符'{' 和字符'}'的一个正则表达式 解决方案 比如把{.}都替换成_ String newStr = str.replaceAll("[{|}]","_"); 解决方案二: 高手请进!小弟急求 解决方案三: String str =

String.replaceAll() 正则表达式

最近项目中出现了一个正则表达式的BUG! 我用的是String.replaceAll()方法 查询发现它应该是调用了Matcher.replaceAll(),String.replaceAll()与下面这段代码等价 Pattern . compile ( regex ).matcher( str ).replaceAll( replacement ) 所以在匹配字符为*或者+的时候!出错! 解决方法 ce.contacts_phone_number .replaceAll(searchStr.r

新人请教一个sscanf中的正则表达式的问题

问题描述 新人请教一个sscanf中的正则表达式的问题 比如一串字符我要取其中的数字,df3600sdf365dssdfwef2135fewe@35@#%dsaf54我用""%*[^0-9]%[0-9]""只能取到3600,""%*[^0-9]""也错误..应该怎么取啊 解决方案 正则 直接用 d+ 即可 解决方案二: 这个应该怎么写..求写法

页面跳转-请教一个Activity跳转到另外一个Activity失败的问题

问题描述 请教一个Activity跳转到另外一个Activity失败的问题 package com.example.t; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; impo

线程中止-请教一个JAVA线程的奇怪问题

问题描述 请教一个JAVA线程的奇怪问题 在学习JAVA线程时候的遇到一个很奇怪的现象.让我们先来看代码 public class TestThread { public static void main(String[] args) { IRun ir = new IRun(); Thread it = new Thread(ir); it.start(); try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger

同步-请教一个很奇葩的线程加锁问题

问题描述 请教一个很奇葩的线程加锁问题 先上代码: import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class MySyncObject { private Integer count = 0; private Integer obj = 0; private Lock lock

我在c++里用regex,结果抛了异常,请教一下这段正则有问题吗

问题描述 我在c++里用regex,结果抛了异常,请教一下这段正则有问题吗 这一段是这样的,我不大清楚c++里哪些字符前面需要加转义符,所以感觉可能是这段正则本身错了,请教一下各位. const regex commonPattern(""(((<(!|/)?\w+( ((.|\n)*?"""")?)? *>)\W*(\w+)\W*((<(!|/)?\w+( ((.|\n)*?"""")?

java-悬赏3个C金币请教一个选择题

问题描述 悬赏3个C金币请教一个选择题 下面是一个选择题 下列程序的运行结果是() class X{ Y b=new Y(); x(){System.out.print("X")} } class Y{ Y(){System.out.print("Y")} } public class Z extends X{ Y y=new Y(); z(){System.out.print("Z")} public static void main(Stri

数据-请教一个 Python 爬虫信息提取问题

问题描述 请教一个 Python 爬虫信息提取问题 最近在学写爬虫,聚合程序员的招聘信息,已经聚合了几个网站数据: http://www.codejob.me 但在写智联招聘爬虫的时候,薪酬如'6001-8000' 我的python代码: s = '6001-8000' if '-' in s: m = re.match(r'(.*?)-(.*?)', s) print m.group(1) print m.group(2) 为什么m.group(1)成功得到6001,而m.group(2)得到