2016-07-22 142 views
0

我想知道是否有人可以提供幫助。我有一個很大的字符串,將類似於下面:獲取字符串的特定子字符串

Name="firstName" Description="this is a test description" date="01/01/2016". 

我想在java做的是簡單地抽象此字符串,即說明後位,它是在引號其在理想情況下給的一小部分我「這是一個測試說明」。任何人都可以指導我如何實現這一目標?

謝謝。

+0

您正在尋找什麼是'正Expressions' – SameeraB

+0

這是JSON或XML?也許那麼你的問題可能會被解決。 –

回答

2

如果字符串與您在那裏完全相同?

假設字符串看起來像這樣,你可以使用split。

String description = str.split("\"")[3]; 

這會給你完全Description引號之間的部分,只是一個分裂。你可以用small example

這裏運行它作爲一個小紙條:這是假定沒有"實際的內容部分內。 (名字,我假設這是一個安全的猜測,但我不確定描述部分是否可以說相同)

+0

它不會像這樣工作: STR ='名稱=「名字」描述=「這是一個測試描述」日期=「2016年1月1日」 .'>'字符串description' = ['名稱=「名字」 ','描述= 「this','is','A','test','描述」','日期= 「2016年1月1日」 .']>'字符串descriptionContent' ='「this' – NatNgs

+0

@我的答案更新NathaëlNoguès,你是對的:-) –

+0

喜歡這個工作,但我個人認爲這是一個醜陋的解決方案;而你必須確保你的描述不包含任何'\「' – NatNgs

3

您可以使用以下正則表達式:.*Description=\"([\\w ]+)\".*"。你想要的字符串是捕獲組1。例如:

Pattern pattern = Pattern.compile(".*Description=\"([\\w ]+)\".*"); 
    Matcher matcher = pattern.matcher(input); 
    System.out.println(matcher.group(1)); 
+0

感謝您的迴應,我感謝您的輸入,但是當我使用Reg表達式對我的字符串時,它似乎不會返回任何結果。我很可能做錯了什麼。我使用https://regex101.com/來測試。謝謝 – J145

+0

每個正則表達式引擎是不同的。每種語言都有其特殊性。你的問題是關於Java的,請在Java正則表達式引擎中測試,而不是在PHP中測試。 – m0skit0