求助 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(".*\\(|\\).*", ""));
东方览康妇: 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()); }