一个会者不难的问题,希望大家能给予解答,共同学习

programdolt 2004-04-15 04:04:24
请问如何提取字符串 "隧道局蜂蜡哭诉机{[你……]}阿里发送{[我……]}理解力抗倒伏嘎{[她……]}进口机旅客" 中{[]}中的内容,用正则表达式取了,没取出来,以前用PHP取这个很简单的,java不知道怎么做?谢谢各位先!
...全文
52 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
programdolt 2004-04-16
  • 打赏
  • 举报
回复
up
programdolt 2004-04-16
  • 打赏
  • 举报
回复
up
programdolt 2004-04-16
  • 打赏
  • 举报
回复
我这样写的,就正确了,您看看是怎么回事呢
Pattern p1 = Pattern.compile("\\{\\[[^\\]]?[^\\}]?.*?\\]\\}");

加了几个 ? 问号
zuifeng 2004-04-16
  • 打赏
  • 举报
回复
UP
CoolAbu 2004-04-16
  • 打赏
  • 举报
回复
我试了一下,你的这个和我的这个运行的结果一样。

你就随便选择一个能运行正确的吧。
programdolt 2004-04-16
  • 打赏
  • 举报
回复
import java.util.regex.Pattern;
import java.text.DecimalFormat;
import java.util.regex.Matcher;
public class PatternTest {
public static void main(String[] args) {
String yourText="隧道局蜂蜡哭诉机{[{[…]}阿里发送{[我……]}理解力抗\r\n倒伏嘎{[她……]}进口机旅客";
Pattern p1 = Pattern.compile("\\{\\[[^\\]]?[^\\}]?.*?\\]\\}"); //正确
//Pattern p1 = Pattern.compile("\\{\\[.*?\\]\\}");//也对
Matcher m1 = p1.matcher(yourText);
while (m1.find()) {
System.out.println(m1.group().trim());
}
}
}
sylmoon 2004-04-16
  • 打赏
  • 举报
回复
............
CoolAbu 2004-04-16
  • 打赏
  • 举报
回复
不可能呀,你加?就可以了?

那个我在我机子上测试过的呀。

你把你的整段程序贴出来看看吧。
mu_gong 2004-04-15
  • 打赏
  • 举报
回复
String A = ("隧道局蜂蜡哭诉机{[你……]}阿里发送{[我……]}理解力抗倒伏嘎{[她……]}进口机旅客");

String[] temp = A.split("[");

然后自己想办法再取
programdolt 2004-04-15
  • 打赏
  • 举报
回复
我这样写的,就正确了,您看看是怎么回事呢
Pattern p1 = Pattern.compile("\\{\\[[^\\]]?[^\\}]?.*?\\]\\}");

加了几个 ? 问号
CoolAbu 2004-04-15
  • 打赏
  • 举报
回复
什么也不输出?报什么错误呀?

把你的整段程序贴出来看看。
programdolt 2004-04-15
  • 打赏
  • 举报
回复
正则表达式:感谢 CoolAbu(阿卜-Never Stop(★★★★),但不知道为什么你的代码什么也不输出呢?您再帮我看看,我也再研究一下。

字符串方法:感谢OnlyLikeJava(甜咖啡)。

同时也感谢大家帮我顶

等我知道了正则表达式方法后,马上结贴,虽然分少,但是态度端正。
wwsh 2004-04-15
  • 打赏
  • 举报
回复
我也顶
programdolt 2004-04-15
  • 打赏
  • 举报
回复
每人知道吗,不会吧,大家帮忙顶啊
OnlyLikeJava 2004-04-15
  • 打赏
  • 举报
回复
1楼的写法虽然简单也值得我学习,但就效率而言我的写法比1楼的要快一些。
不信楼主可以测试一下。呵呵。
casemy 2004-04-15
  • 打赏
  • 举报
回复
支持一楼
programer23 2004-04-15
  • 打赏
  • 举报
回复
不知道,顶
OnlyLikeJava 2004-04-15
  • 打赏
  • 举报
回复
public void getString(String test) {
StringBuffer info = new StringBuffer();
while (test.indexOf("]}") != -1) {
int start = test.indexOf("{[");
int end = test.indexOf("]}");
String oldString = test.substring(start + 2, end);
test = test.substring(end + 2);
info.append(oldString + "\n");
}
System.out.println(info.toString());
}
CoolAbu 2004-04-15
  • 打赏
  • 举报
回复
String yourText="隧道局蜂蜡哭诉机{[你……]}阿里发送{[我……]}理解力抗倒伏嘎{[她……]}进口机旅客";
Pattern p1 = Pattern.compile("\\{\\[[.[^\\]]]*\\]\\}");
Matcher m1 = p1.matcher(yourText);
while (m1.find()) {
System.out.println(m1.group().trim());
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧