vishare 2010-05-06 09:15
浏览 210
已采纳

求java的正则表达式

要求:
1.--test说明 能输出--test说明
2.东奔西走--test 能输出--test
3."--serwef" 不用输出
4.'--serwef' 不用输出
4."--sdfas" --etaetta 能输出--etaetta
5."aerewrfa "--test 能输出--test
6."jsdfsd--sdfsdf" --test 能输出--test
7."jsdfsd--sdfsdf" --test's 能输出--test's
8."jsdfsd--sdfsdf" --test"s" 能输出--test"s"
9.--"这也是能输出的"呀 能输出--"这也是能输出的"呀

private String getMemo(String str){
str ="--test说明,东奔西走--test,\"--serwef\",'--serwef'" +
",\"--sdfas\" --etaetta,\"aerewrfa \"--test,\"jsdfsd--sdfsdf\" --test,\"jsdfsd--sdfsdf\" --test's,\"jsdfsd--sdfsdf\" --test\"s\"";
String[] strArr = str.split(",");
String memo ="";

for (int i =0;i<strArr.length;i++){
Pattern p = Pattern.compile("--[^\"\']*$");

Matcher m = p.matcher(strArr[i]);

while (m.find()){

memo = m.group();

}

}
return memo;

}

昨天提问过,后来发现那个表达式不能匹配7,8,9的情况.望指教

  • 写回答

5条回答 默认 最新

  • weixin_42518082 2010-05-08 08:04
    关注

    正则也是可以的
    [code="java"]
    private final static Pattern pattern =
    Pattern.compile("^(?:(?:\"[^\"]*\"|'[^']*'|[^'\"\r\n])*)(--.*)$");
    private static String getMemo(String string) {
    Matcher m = pattern.matcher(string);
    return (m.matches()) ? m.group(1) : null;
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应