2016-07-22 141 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