2011-08-28 52 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