java中 利用正则表达式提取( )内内容

2016-02-19 10:36 11 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享java中 利用正则表达式提取( )内内容的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - 编程语言 】

昨天遇到一个小问题,需要批量处理一些用户,而前台传来的用户格式如下,要提取括号中间的内容(不带括号)

教师10(0010)
教师11(0011)
教师9(009)
教师12(0012)
教师13(0013)
教师14(0014)
  
本来想用java的String.split()和substring()来搞定,但是需要处理多次比较麻烦,就用正则表达式了。虽然语法忘得差不多了,但是印象中用断言比较方便(关键希望结果不带括号)。打开RegexBuddy试了下,轻松搞定:

下边是java实现代码:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

代码如下:

public ListString getTeacherList(String managers){
        ListString ls=new ArrayListString();
        Pattern pattern = Pattern.compile("(?=()(.+?)(?=))");
        Matcher matcher = pattern.matcher(managers);
        while(matcher.find())
            ls.add(matcher.group());
        return ls;
    }

最后附一下用到的零宽断言:

宽断言(?=exp)匹配exp前面的位置(?=exp)匹配exp后面的位置(?!exp)匹配后面跟的不是exp的位置(?!exp)匹配前面不是exp的位置
 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1595210.html

延伸阅读
标签: Web开发
正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为元字符)。模式描述在搜索文本时要匹配的一个或多个字符串。   正则表达式示例 表达式 匹配 /^\s*$/ 匹配空行。 /\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。 /\s*(\S+)(\s[^]*)?[\s\S]*\s*\/\1\s*/ ...
标签: Web开发
正则表达式在PHP中被用来处理复杂的文字串。支持正则表达式的函数有: ereg()ereg replace()eregi replace()split() 这些函数都将正则表达式作为他们的第一个参数。PHP使用POSIX扩展规则表达式(使用POSIX 1003.2)。要找到所有的关于POSIX扩展规则表达式的描述,请查看包括在PHP发行版本之内的regex man页面。 Examp...
正则表达式简介 翻译:NorthTibet 原文出处:Regular Expressions 有些新手对正则表达式不是很熟悉,有必要在此作一简单回顾。如果你是正则表达式高手,可以不用看这一部分。 正则表达式是描述字符串集的字符串。例如,正则表达式“Mic*”描述所有包含“Mic”,后跟零个或多个字符的字符串。Mickey、Microsoft、Michelangelo...
标签: Web开发
####################### #作者:雨浪 版权所有,翻版说一下 # #QQ:270499458 # ####################### 近段日子几个刚学了正则表达式的朋友问我在asp中怎么用.呵呵.虽然简单,还是写出来吧,正则表达式的基本知识我就不说了.其实已经有...
标签: Web开发
前言 正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题。 索引 1. 引子 目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以...

经验教程

993

收藏

66
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部