① java,怎样用正则表达式去掉方括号[ ]内的内容。如将"[a;b]haha;[c;d]hihi"变为“haha;hihi”。
^String str = "[a;b]haha;[c;d]hihi";
// 三部分:[\\[]:开头; [^\\[\\]]+:非[]; [\\]]结尾回
System.out.println(str.replaceAll("[\\[][^\\[\\]]+[\\]]", ""));
结果答正确
② java正则获取中括号的内容
你的这个a是数组,应该是string[] 类型的,直接a[2]就可以取出了,假设是string类型的啊,可以用subString(int start,int end)取值
③ Java中如何用正则表达提取中括号嵌套中括号中的内容
一定要用正则吗,如果不用正则的话,可以讲所有的中括号用replace()方法替换掉,然后用spilt()方法,以逗号隔开,得到的字符串数组就是你要的内容。
如果用正则的话,代码如下
import java.util.regex.*;
public class RegDemo
{
public static void main(String args[]){
String reg="\\[+([a-z]{1,}|_)+[a-z]{1,}+\\]";
//只用reg2可以匹配两个括号的内容
//String reg2="\\[\\[+([a-z]{1,}|_)+[a-z]{1,}+\\]\\]"
//这里的content就是要用来匹配的数据
String content="[world],[hello],[[hello_world]]";
//以逗号分隔
String arr[]=content.split(",");
for(int i=0;i<arr.length;i++){
Pattern pattern=Pattern.compile(reg);
Matcher matcher=pattern.matcher(arr[i]);
if(matcher.find()){
//得到第一次循环的内容,判断里面还有中括号没有
String target1=matcher.group();
if(target1.contains("[")){
//把所有的方括号替换掉,就得到想要的数据了
target1=target1.replace("[","");
target1=target1.replace("]","");
}
System.out.println(target1);
}
}
}
}
④ 求一个正则表达式 匹配出所有的中括号比如
匹配所有的中括号及其中内容的正则表达式 【.*?】
我给你一个Java语言的专例子,你看看吧属
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassAA{
publicstaticvoidmain(String[]args){
Stringstr="1....水电费第三方第三方第三方【222】【3333】 展示的是 【222】 【3333】";
Stringregex="【.*?】";
Patternp=Pattern.compile(regex);
Matcherm=p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
}
}
⑤ 用java正则表达式匹配方括号问题
find()方法是部分匹配,是查找输入串中与模式匹配的子串。
matches()是全部匹配内,是将整个输入串容与模式匹配,因此只有整个字符串都符合正则表达式才会返回true
System.out.println(Pattern.matches("\\[.+?\\]", "[呵呵]"));
⑥ 正则匹配两个方括号之间的内容,包括方括号本身
要匹配字符串[] ..... [/]的所有内容(包括两个方括号),
应该用正则表达式:/\[\][\s\S]*?\[\/\]/i
取第内0捕获组的数据,就是字符串容[] ..... [/]的所有内容
你的正则表达式/\[\]([\s\S]*)\[\/\]/Ui如果有两个[/],它就会匹配最长的字符串(贪婪匹配),比如字符串:[] ..... [/][] ..... [/]
它一次会匹配全部字符串(贪婪匹配),而不是匹配第一和第二个[] ..... [/](非贪婪匹配)
另外,/\[\]([\s\S]*)\[\/\]/Ui加小括号会捕获[] ..... [/]中间的 .....
而你要匹配所有内容(包括两个方括号),所以应该去掉小括号,取第0捕获组的数据。
⑦ java正则表达式匹配小括号内的内容
String str = "(aa){(dd)cbdsagchgkhdbvljck(ff)}";
Pattern pattern = Pattern.compile("(?<=\\()[^\\)]+");
Matcher matcher = pattern.matcher(str);
while(matcher.find())
{
System.out.println(matcher.group());
}
⑧ JAVA正则表达式获取大括号什么内容
代码如下:
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) throws Exception {
String test = "{databaseIp}:{databasePort}{instanceName};database";
List<String> ls=new ArrayList<String>();
Pattern pattern = Pattern.compile("(?<=\{)(.+?)(?=\})");
Matcher matcher = pattern.matcher(test);
while(matcher.find()){
ls.add(matcher.group());
}
for (String string : ls) {
System.out.println(string);
}
}
⑨ 正则表达式怎么匹配中括号里面的内容
varpattern=/(([^)]+))/;//匹配结果取分组1
更多正则资料请参考我的博客:《我眼里的正则表达式(专入属门》
链接:http://www.zjmainstay.cn/my-regexp
⑩ 正则表达式 匹配最后一个中括号内容
我试了半天,只能将逐个括号中的内容进行匹配,正则表达式如下:(?!\[)([^\[\]]*)(?=\])
如果回你代码中用答javascript来实现对匹配内容进行操作的话,可以使用/(?!\[)([^\[\]]*)(?=\])/g来解决最后一个括号匹配的问题。
我用javascript做的测试:(弹出最后一个括号中的内容)
<script>
changeStr();
function changeStr()
{
var str = "[tt.aa].[bbb].[ccc]";
var reg = /(?!\[)([^\[\]]*)(?=\])/g;
var arr = str.match(reg);
alert(arr[arr.length-2]);//最后一次匹配的是空串,倒数第二次才是我们想要的结果
}
</script>
希望能够帮到你