首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

问个java正则表达式匹配字符串的有关问题,

2012-03-27 
问个java正则表达式匹配字符串的问题,在线等。一个字符串是这样的:s“van Bakel,H., Nislow,C., Blencowe,B

问个java正则表达式匹配字符串的问题,在线等。
一个字符串是这样的:s=“van Bakel,H., Nislow,C., Blencowe,B.J. and Hughes,T.R. Most ‘‘dark matter’’ transcripts are associated with known genes. PLoS Biol., 8, e1000371.”
我相匹配出这个字符串s1=“Most ‘‘dark matter’’ transcripts are associated with known genes”
s1的前后都不固定,“PLoS Biol”这是某个期刊的名称,开头是都是大写的,我想从s中匹配出s1,请问正则表达式该如何写?

[解决办法]
(?<=T.R. \b).+\b(?=\bPLoS\b)
但是如果前后都不固定 怎么写我也不知道,零宽断言他总得有个对应的表达式啊。其实最简单的便是匹配你的s1,也就是“Most ‘‘dark matter’’ transcripts are associated with known genes” 自然就获得了这个字符串,但是我不明白你到底要做啥。
[解决办法]
for example

Java code
String s="van Bakel,H., Nislow,C., Blencowe,B.J. and Hughes,T.R. Most ‘‘dark matter’’ transcripts are associated with known genes. PLoS Biol., 8, e1000371.";Pattern p = Pattern.compile("(?<=[.]\\s)[A-Z].*?(?=[.]\\s[A-Z])"); //(.空格开始)+大写字母+任意字符+(.空格+大写字母结束)Matcher m = p.matcher(s);while (m.find()) {    System.out.println(m.group());} 

热点排行