论坛首页 入门技术论坛

java利用正则表达式来获取字符串中的数据

浏览 9299 次
该帖已经被评为新手帖
作者 正文
   发表时间:2012-09-13  
不写注释,不解释,留着自己以后用,顺便给需要的人分享一下,嘿嘿,
将一个类似于 name="alvin1",password="alvin2",mail="alvin3",sex="alvin4"的字符串中,等号后面引号中的内容获取出来,字符串可以无限的加长,和加逗号加表达式
package org.alvin.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ExpressionDemo {
	/**
	 * java利用正则表达式做拆分和获取值的例子
	 * 
	 * @author 唐植超 ^_^
	 * 
	 */
	public static void main(String[] args) {
		String text = "name=\"alvin1\",password=\"alvin2\",mail=\"alvin3\",sex=\"alvin4\"";
		Pattern pa = Pattern.compile(".+=\"(.+)\"");
		Matcher ma = pa.matcher(text);
		do {
			int end = text.indexOf(",");
			if (end > -1)
				ma.region(0, end);
			if (!ma.matches())
				break;
			System.out.println(ma.group(1));
			if (end == -1)
				break;
			text = text.substring(end + 1);
			ma = ma.reset(text);
		} while (true);
	}

}


首先声明,本人只是分享,别在下面骂人,
   发表时间:2012-09-13   最后修改:2012-09-13
http://ansjsun.iteye.com/blog/1150903 看看这个
0 请登录后投票
   发表时间:2012-09-13  
本来不想骂人的,不过看到LZ最后一句话,不想都对不起iteye了。就这种东西也拿出来分享?难怪iteye越来越不济越来越没水平了,唉,林子大了,什么鸟都有,也就参差不齐了。
0 请登录后投票
   发表时间:2012-09-13  
BTW, 代码风格真烂。
0 请登录后投票
   发表时间:2012-09-13  
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		 String text = "name=\"alvin1\",password=\"alvin2\",mail=\"alvin3\",sex=\"alvin4\"";  
	     Pattern pa = Pattern.compile("([a-zA-Z]+)=\\\"([^\\\"]+)\\\"");  
	     Matcher mc = pa.matcher(text); 
	     while(mc.find()){
	    	 System.out.println(mc.group(1)+"="+mc.group(2));
	     }
	}

}

要我写肯定写成这样
0 请登录后投票
   发表时间:2012-09-13  
没看出来哪里值得分享。。。
0 请登录后投票
   发表时间:2012-09-13  
楼上的 你们看了最后一句了么?

"首先声明,本人只是分享,别在下面骂人,"

不想看可以绕道..讨论技术不是炫耀..也许一年前你连正则都不会写呢..有意思么?

各有所长...我觉得是个氛围..iteye的氛围就被这个摧毁了
0 请登录后投票
   发表时间:2012-09-14  
ansjsun 写道
楼上的 你们看了最后一句了么?

"首先声明,本人只是分享,别在下面骂人,"

不想看可以绕道..讨论技术不是炫耀..也许一年前你连正则都不会写呢..有意思么?

各有所长...我觉得是个氛围..iteye的氛围就被这个摧毁了

-------------------------------------------------------------
谢谢这位仁兄了!
本人其实工作3年了,但是不懂java正则这块的,前几天碰到问题了,就是上面那段代码,其实这段代码是有bug的,等于号如果出现逗号或者\"就没法解决了。
我有代码洁癖,看不惯这段代码,总觉得能改,却不知道怎么改,无奈之际,我去悬赏,提问,没人理我,
昨天看到有人在收集日本的品牌,地下的人一片谩骂,“XXX产品怎么都没写!”,我意识到只要有人骂你,你就能找到正确答案,我已经看到正确答案了……
iteye其实是个不错的平台,但现在却像个泥潭,里面藏满了大嘴巴的鳄鱼,如果你不动,没人说什么,一旦有人想从上面游过,就会有鳄鱼冒出来要人,为了活命,只好踩着鳄鱼的头过去了……
感谢所有回帖的人
0 请登录后投票
   发表时间:2012-09-14  
现在的程序员越来越那个了,写得不好还不让人骂,估计在公司不知被骂多少了。要能够敢于承认自己写得烂,才能得到别人的指正,如果有哪一天不再有任何人再批评你的代码了,那只有两种情况:1,你的代码无懈可击;2,你懂的。

就这代码还被放到了首页,只能说这个网站确实没落了,没落了,然后没落了。
0 请登录后投票
   发表时间:2012-09-14  
我曾经问过一个大牛,我说为什么中国不像外国那样出那么多的年轻牛B的程序员,比Linus,Rod之流,他们都很年轻,为什么国内这个年龄层次的都几乎没有达到这种高度的程序员出现?他说氛围不同。国外的氛围要好,经常有社会活动俱乐部之类的,经常会在一起討論,并且是討論,可能会为技术而争得面红耳赤,但不会有人身攻击,讨论完之后还是有说有笑。

而国内。。。。假设一个人的代码写得不好,然后贴了上来,然后有人就说写得很烂。这很显然只是针对代码的评价,没有任何恶意。而这时候,LZ就回贴到:xxx,我只是怎样怎样,你为什么要这样子来说我?XXX,一下子就转到人身攻击的层次了。久而久之之后,要么LZ不再发贴了,要么别人不再评论了。

最恶心的,发完之后来一句:只是分享,只是给大家看看,请大家不要怎样怎样,不要怎样怎样。我想说的是,如果你发出来不让别人指出不好的地方,难道只是为了得到别人的表扬,难道要下面的评论一片好一片顶,你才高兴?这样对你的技术有什么提高?

如果我们学有小成,骄傲一下是应该的,但是我们不应该就此拒绝那些学有大成的人的批评。牛B的人往往都很有特点,比如Linus,就把windows批评得比垃圾还垃圾,比如说乔帮主,也是最喜欢用垃圾来批评别人了,但是,我们要看到好的那一面,那对我们会有提高,然后提高,然后提高。

真心很怀念求伯君那个年代。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics