2011-08-28 247 views
0

我似乎无法掌握正则表达式的整体概念,我一直在用PHP现在工作了几十年的人,在大多数情况下,试图避免的preg_match和这样的功能。我想知道你们是否可以将我指向正确的方向,我可以学习java的正则表达式,还是一般的正则表达式?我尝试了很多不同的教程和指南,但仍然遇到了麻烦。提取文本

在平均时间,而我努力学习,提高我的正则表达式的技能,你们可以帮助我?

在Java中我有一个字符串,它是像这样

String secKey; 
secKey = "<auth_key>5aff0b2449511aac46e14b5e62436e994c5d</auth_key>"; 

我怎么会去从字符串中提取只是“5aff0b2449511aac46e14b5e62436e994c5d”?

如果你们能帮助我与和可能的点我在正确的方向,让我用正则表达式正确的轨道,这将是巨大的,谢谢了!

+1

'米正则表达式{(+)}'。但是我不会在这里使用正则表达式,但是Commons Lang StringUtils substringBetween。 – Thilo

+0

预先警告:正则表达式必须是使用解析XML般的文字绝对最差的工具之一。 –

+0

请注意,@ Thilo的例子是使用Perl符号,这在Java中不起作用。请参阅mazaneicha关于如何在Java源代码中编写正则表达式的答案。 –

回答

4

像这样:在Java

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

public class X { 
     . . . 
    public static String extractValue(String s) { 
     Pattern p = Pattern.compile("<auth_key>(.+)</auth_key>") ; 
     Matcher m = p.matcher(s) ; 
     if (m.find()) 
      return m.group(1) ; 
     else 
     return null ; 
    } 
     . . . 
} 
0

正则表达式使用java.util.regex.Patternlink

教程link