首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得":“之间的子字符串

如何获得":“之间的子字符串
EN

Stack Overflow用户
提问于 2014-04-19 00:35:57
回答 3查看 1.8K关注 0票数 0

假设我有一条类似这条的绳子:

“(.)示例: Hello。描述:这是一个很长的文本,有单词和浮雕。这是我需要的部分。这部分我不需要:示例的结尾。(.)

如何只获得这个子字符串:

这是一个长的文本,有文字和浮雕。这是我需要的部分。

我写的地方(.)是字符串的延续,我处理的是一个长文本,但在本例中只想得到Description

我想要在“描述:”和下一个“之前的单词”之间的所有内容(单词、点、逗号等):

确切的例子是:

职位名称: Java程序员日期: 18/04/2014数量:4个空缺职位描述:在软件工厂下实现系统,与敏捷、Spring、Hibernate和GWT一起工作。计算机科学高等教育。TDD航线。敏捷方法知识,描述活动,TDD和BDD。有良好的沟通能力。注:福利:医疗保健/医疗集团,机票喂养,交通代金券计划租用: CLT (永久)小时:周一至周五上午8点至17小时30,午餐时间为1h30。

我需要:

在软件工厂下实现系统,使用敏捷、Spring、Hibernate和GWT。计算机科学高等教育。TDD航线。敏捷方法知识,描述活动,TDD和BDD。有良好的沟通能力。

在这种情况下,在"Description:“之后加上"Note:”之后的子字符串,但是这个第二个单词(Note:)可以是任何单词。这就是为什么我需要一个正则表达式,但不知道它是什么。

EN

回答 3

Stack Overflow用户

发布于 2014-04-19 00:45:12

代码语言:javascript
运行
复制
String original = "This is a string: Here is what you want: Maybe you want this too?";
int firstColon = original.indexOf(':');
int secondColon = original.indexOf(':', firstColon+1);
if (secondColon != -1) {
    String parsed = original.substring(firstColon+1, secondColon);
} else {
    //2 colons not found
}

上面的代码查找:字符的第一个索引并存储它。然后,它将在原始:之后查找下一个。如果找到第二个冒号( if语句),则解析和存储字符串。String.substring包含第一个索引,不包含最后一个索引。若要修剪任何前导或尾随空格,请在解析行的末尾添加.trim()。若要仅扫描第一个冒号,请使用以下命令。(这是修剪字符串)

代码语言:javascript
运行
复制
String original = "This is a string: Here is what you want: Maybe you want this too?";
int firstColon = original.indexOf(':');
if (firstColon != -1) {
    String parsed = original.substring(firstColon+1).trim();
} else {
    //One colon not found
}

需要注意的是,java中的String是不可变的。original.substring不会更改原始字符串,只返回子字符串的新字符串。

票数 3
EN

Stack Overflow用户

发布于 2014-04-19 00:47:11

您可以使用拆分方法,如下所示:

代码语言:javascript
运行
复制
String[] sentences = "This is a : test".split("[:]");

传递给拆分方法的参数是一个正则表达式,并返回每个除法的String数组。

例如,上面所示的方法将返回以下输出:

代码语言:javascript
运行
复制
sentences[0] will be This is a"
sentences[1] will " test"
票数 0
EN

Stack Overflow用户

发布于 2014-04-19 01:00:17

如果您正在使用(<=)jdk1.6,并且正如您所说的文本可能是long,我不会使用substring()来避免潜在的内存问题。

在两个:之间使用regex非常简单:

with group::([^:]*):

无组:(?<=:)[^:]*

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23164402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档