2016-04-12 8 views
0

Java Regexに関するヘルプが必要です。私は以下のいずれかの形式を持つことができ、ファイル名の文字列を持っている:Java Regexを2つの文字列に使用する

数yyyymmdd.text_1.xml

OR

yyyymmdd.text_1.xmlを

<番号と< yyyymmdd>を以下の正規表現を使用して最初の形式から得ることができます:

"\\-(.*?)\\." - 私は

"(.*?)\\-";をYYYYMMDD与えます - 私は数

を与えるが、第二のフォーマットで(すなわち、 < yyyymmdd> .text_1.xml)でエラーをスローし、< yyyymmdd>を返しません。私は両方の文字列で動作する日付形式の正規表現が必要です。

助けてください。

答えて

2

この正規表現は、形式-1の番号と日付の両方を与え、フォーマット-2

public static void main(String[] args) { 
    String s1 = "number-20150606.text_1.xml"; 
    String s2 = "20150606.text_1.xml"; 

    Pattern p =Pattern.compile("(.*?)-?(\\d{8})"); 
    Matcher m = p.matcher(s1); 
    while(m.find()) { 

     System.out.println(m.group(1)); 
     System.out.println(m.group(2)); 
    } 
    m = p.matcher(s2); 
    while(m.find()) { 

     System.out.println(m.group(1)); 
     System.out.println(m.group(2)); 
    } 
} 

O/Pに空の文字列と日付を与える:ありがとう

number 
20150606 
      // Empty String here. 
20150606 
+0

!!これは非常に役に立ちました。 – user6042886

関連する問題