java 正则表达使用,匹配两个字串之间的内容
获取两个特定字符之间的的字符串的正则表达式 \{\@(.+?)\@\}
我给你一个Javascript语言的例子,你看看吧.
var str="∠A+∠B=__{@平行线的性质||直角坐标@},hahha@sdka___{@平行线的性质@}"; var regex=/\{\@(.+?)\@\}/g; var result; while((result=regex.exec(str))!=null) alert(result[1]);运行结果平行线的性质||直角坐标平行线的性质
([^ ]+?)/end/
注意最前面有一个空格。你要的东西在第一个分组里。
PS.你会在java里用正则获取第一个分组吧?下面是一个例子(部分),subjectString是“我 实在 不知道 该 怎么办/end/ 了”所在的字符串。
List matchList = new ArrayList();try {Pattern regex = Pattern.compile(" ([^ ]+?)/end/");Matcher regexMatcher = regex.matcher(subjectString);while (regexMatcher.find()) {matchList.add(regexMatcher.group(1));} } catch (PatternSyntaxException ex) {// Syntax error in the regular expression}
(?<=@@!).*(?=@@~)
(?<=@@!) 匹配一个位置,而不是字符.这个位置在@@!後面.
(?=@@~) 匹配一个位置,而不是字符.这个位置在@@~前面.
.* 这两个位置之间的所有字符.
另外,要注意使用的符号是中文的还是英文的,是全角还是半角,这关系到能否正确匹配.
你上面的感叹号是中文的.
你发的这个貌似中间有特殊字符,不知道你的具体需求
正则表达式:@@([^x00-xff]*)@@
中间部分代表意思为:匹配双字节字符(包括汉字在内) * 是指重复零次或更多次
java关键代码如下:
Pattern pattern = patternCompiler
.compile("@@([^x00-xff]*)@@");
if (patternMatcher.contains(logString, pattern))
{
MatchResult matchResult = patternMatcher.getMatch();
return matchResult.group(1).trim();
}
返回“!阿什顿拉黑的”
(?<=@@)[^@]*(?=@@)
String str = "@@阿什顿拉黑的@@";
for(String s:str.split("@@")){
System.out.println(s);
}
"^@@[\u4e00-\u9fa5]*@@$"
[\u4e00-\u9fa5]汉字范围
*多个
陈没树眼氨: 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s ¦ ]*\r 匹配HTML标记的正则表达式:/ <(.*)> .* <\/\1> ¦ <(.*) \/> / 匹配首尾空格的正则表达式:(^\s*) ¦(\s*$) 用正...
栾城县15197632439: java 怎么用正则表达式把字符串以两个字符分开? 比如: String str="abcdefghjk" String - ?
陈没树眼氨: // String str="abcdefghk"; String rStr = str.replaceAll("(\\w{2})(?=.)","$1,"); System.out.println(rStr);//ab,cd,ef,gh,k String[] strArr = rStr.split(","); System.out.println(Arrays.toString(strArr));//[ab, cd, ef, gh, k]
栾城县15197632439: java 怎么利用正则表达式从给定的字符串中取出匹配规则字符串 - ?
陈没树眼氨: 利用正则表达式从给定的字符串中取出符合匹配规则的字符串的Java程序如下:import java.util.regex.Matcher; import java.util.regex.Pattern; public class E { public static void main(String[] args) { Pattern p = Pattern.compile("[A-Za-z]+");//设定匹...
栾城县15197632439: 请问java字符串处理的正则表达式中,要怎么匹配//...和/*...*/(也就是匹配java注释)? 谢谢! - ?
陈没树眼氨: 下面是关于java的正则处理 原理和上面的基本一样, 我觉得如果真的匹配java代码里面的注释这个还不够 还需要很多的条件 因为有可能你的代码里面本身就有相关字符的处理.所以我认为需要根据你具体的情景进行正则设计Pattern p=Pattern...
栾城县15197632439: 正则表达式 匹配两个字符串之间的 - ?
陈没树眼氨: 展开全部(((?!)[\s\S])*) 取匹配到match对象的group(1)
栾城县15197632439: 正则表达式在一段文本中匹配到包含的两个汉字的某一行 - ?
陈没树眼氨: 如果只是查特定的两个汉字 ^[^你好]*[你好][^你好]*[你好][^你好]*$ 如果是匹配任意只包含两个汉字的行,将上面所有的"你好" 改为 \u4e00-\u9fa5 进行尝试
栾城县15197632439: java正则表达式中可以匹配具体汉字 - ?
陈没树眼氨: String regex = "分享图片"; 然后使用string的matches方法,你要匹配的字符串str:判断是否匹配 if(str.matches(regex)),如果str中包含分享图片,就另做处理.不知道是否是这个意思~
栾城县15197632439: java 使用正则表达式如何匹配 href="xxxxxx",就是要href整个字符串 - ?
陈没树眼氨: href 这几个字要不要? 如果只是要取出" "中的字符串的话,可以这样:import java.util.regex.*; public class Test { public static void main(String[] args) { String ptn = ".*href=\"(.*)\""; Pattern p = Pattern.compile(ptn, Pattern.DOTALL); String s ...
栾城县15197632439: 正则表达式 匹配第一个第二个汉字 - ?
陈没树眼氨: 第一次匹配项: (?<=^天..). 替换为t 第二次匹配项: (?<=^.地...). 替换为d
栾城县15197632439: java 正则表达式 如何匹配"*"? - ?
陈没树眼氨: 报错是因为 *这个字符在正则表达式中已经定义了 好像是代表任意一个字符吧 记不太清了 就好像是你定义一个对象的名字时用到了java关键字一样的道理 改正方法:a.replace("\\*","dog"); \\*对 *进行了转义 是真正的*