求助 java正则表达式将中文括号里的内容提取出来

作者&投稿:宗骂 (若有异议请与网页底部的电邮联系)
求助 java正则表达式将括号里的内容提取出来~

1.就用LS的例子来改进吧,LS的例子用正则匹配的捕获型,也就是说除了捕获了/patroninfo~S0*chx/1069163/modpinfo,还捕获了带单引号的 '/patroninfo~S0*chx/1069163/modpinfo‘ (输出 System.out.println(mat.group(0) 就是);
这样无论在效率还是安全性上都有欠缺。
2 Pattern.compile("\\'(.*?)\\'")也可以改为Pattern pat = Pattern.compile("\'(.*?)\'"),减少代码冗余和理解复杂度。

捕获用法:
public class Test {
public static void main(String[] args) {
String str = "";
Pattern pat = Pattern.compile("\'(.*?)\'");
Matcher mat = pat.matcher(str);
if (mat.find()) {
System.out.println(mat.group(1));
}
}
}


非捕获方法:
public class Test {
public static void main(String[] args) {
String str = "";
Pattern pat = Pattern.compile("(?<=\').*(?=\')");
Matcher mat = pat.matcher(str);
if (mat.find()) {
System.out.println(mat.group(0));
}
}
}

用group(index)可以取到匹配到的内容。

String re="行政专员(袁文全)";
String rex="[()]+";
String[] str=re.split(rex);
System.out.print(str[1]);

还有一个不是正则表达式的
String re="行政专员(袁文全)";
String str=re.substring(re.lastIndexOf("("),re.lastIndexOf(")"));
String s=str.substring(1,str.length());
System.out.print(s);

Pattern p = Pattern.compile("\\(([^\\)]+)");
Matcher matcher = p.matcher("行政专员(袁文全)");
if (matcher.find() && matcher.groupCount() >= 1){
System.out.println(matcher.group(1));
}

Pattern p = Pattern.compile(&quot;&#92;&#92;(([^&#92;&#92;)]+)&quot;);Matcher matcher = p.matcher(&quot;行政专员(袁文全)&quot;);if (matcher.find() &amp;&amp; matcher.groupCount() &gt;= 1){System.out.println(matcher.group(1)); }

System.out.println( str.replaceAll(".*\\(|\\).*", ""));


康马县18617081966: 正则表达式 把字符串中成对的中括号替换成小括号 -
东方览康妇: var s="A[BCD]EF]G"; s.replace(/\[([^\[\]]*)\]/g, "($1)"));

康马县18617081966: String str = 中文中文(中文); 我想用正则替换掉括号跟里面的中文 怎么写 -
东方览康妇: 用正则替换掉括号跟里面的中文的正则表达式 \(.*?\) 替换为空字符串 "" 我给你一个Java语言的例子,你看看吧.public class AA { public static void main(String[] args) { String s="中文中文(中文)"; String regex="\\(.*?\\)"; System.out.println(s.replaceAll(regex, "")); } }运行结果 中文中文

康马县18617081966: 正则表达式将英文括号和全部转化为中文括号 -
东方览康妇:[答案] var reg = /[\(]/g,reg2 = /[\)]/g; var str = "(ddd)"; str = str.replace(reg,"(").replace(reg2,")"); console.log(str)

康马县18617081966: 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}{...

康马县18617081966: java中如何用正则表达式表示中文标点
东方览康妇: 找到 每个标点符号的 Unicode 代码,然后用 “(\uXXXX|\uXXXX|...)” 这样的正则表达式

康马县18617081966: JAVA正则表达式判断 只能包含汉字、英文、“ - ”和数字 ,正则该怎么写呢?
东方览康妇: 正则表达式如下: String pattern = "[\u4e00-\u9fa5\\w]+"; 其中:\u4e00-\u9fa5 代表中文,\\w代表英文、数字和“_",中括号代表其中的任意字符,最后的加号代表至少出现一次.

康马县18617081966: 求java一个正规表达式,只包含中文、数字、空格、冒号 -
东方览康妇: 只包含中文、数字、空格、冒号的Java正则表达式如下 ^[\\u4e00-\\u9fa5 0-9:]+$ 我给你个Java语言匹配只包含中文、数字、空格、冒号的程序,你看看吧.import java.util.regex.Matcher; import java.util.regex.Pattern; public class CC { public static ...

康马县18617081966: 正则匹配类似于公司名称,中文汉字+小括号符号,限制长度为:30个字符 -
东方览康妇: 非空格 : [^ ] ------ 注意符号'^'后面有一空格 一个(含一个)以上个的非空格 : [^ ]+ 不包含空格字符的行 : ^[^ ]+$ 因此最终表达式为1^[^ ]+$

康马县18617081966: 求java中的正则表达式 -
东方览康妇: String reg = "^\s\\S]*;$";String str = "2n2323$sdfsdfsdf;ss;";System.out.println(str.matches(reg));...

康马县18617081966: java正则表达式匹配小括号内的内容 -
东方览康妇: String str = "(aa){(dd)cbdsagchgkhdbvljck(ff)}"; Pattern pattern = Pattern.compile("(?<=\\()[^\\)]+");Matcher matcher = pattern.matcher(str); while(matcher.find()) { System.out.println(matcher.group()); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网