數據解決這只是正則表達式,尤其是當字符串的確切內容是動態的,將不能很好地工作。你需要的是一個詞法分析器和一個帶有語法的詞法分析器。我沒有在Java中做過這樣的事情,但首先你需要將你的字符串分解爲令牌(關鍵字,值,表達式,短語等) like
「謝謝你使用你的HDFC銀行借記卡/ 2012-04-16:17:33:03,ATM卡終止4444,R.2525.25朝TAGAG CAP CAP at ATM的ATM WDL發送。
phrase[Thank you for using your]
stringconst[HDFC Bank]
phrase[ending]
numericconst[4444]
keyword[for]
stringconst[Rs.]
numericconst[125.25]
....
您可以通過定義令牌,給它們方便的名稱併爲它們定義規則(即使用正則表達式)來實現。重點是你所擁有的,不是這個意思 之後,您需要一個gramer爲正則表達式不會幫助你瞭解「什麼」:
sentence ::= intro bankinfo cardinfo valueinfo categoryinfo timeinfo
intro ::= phrase
bankinfo ::= bankname phrase | phrase bankname
bankname ::= stringconst
....
這基本上給你的規則樹。
通過標記輸入字符串並應用您的語法,您應該能夠分析字符串並找到感興趣的部分。
不幸的是,這只是對這個安靜複雜的理論介紹,但非常有趣的話題,我不能提供任何代碼示例,但我希望這有助於開始。
數據是不是有可能在Json或xml中這實際上是正確的方法?因爲這根本不是我認爲的可靠解決方案。 – 2012-08-01 07:26:25
@AndroSelva多數民衆贊成只是一個字符串。沒有辦法不幸的是得到它作爲XML或JSON。 :( – 2012-08-01 07:29:59
如果所有的回答都以同樣的方式來使用正則表達式 – thepoosh 2012-08-01 07:41:32