java如何获取“:”之间的子字符串
假设我有一个像这样的字符串:
"(...) Example: Hello world. Description: Here is a long text, with words and ponctuation. This is the part I need. This part I do not need: End of the example. (...)"
如何仅获取此子字符串:
Here is a long text, with words and ponctuation. This is the part I need.
我写的地方(…)是字符串的延续,我处理的是一个长文本,但在本例中只想得到描述
我想要“Description:”和下一个单词之前的单词之间的所有内容(单词、点、逗号等):
确切的例子是:
职位名称:Java程序员日期:2014年4月18日数量:4个空缺职位描述:在软件工厂下实施系统,与Agile、Spring、Hibernate和GWT合作。计算机科学的高等教育。TDD课程。了解敏捷方法、描述的活动、TDD和BDD。有良好的沟通能力。注:福利:医疗保健/医疗团体、票务喂养、交通券计划租用:CLT(永久)工作时间:周一至周五上午8点至下午3点30分,下午1点30分午餐
我需要:
在软件工厂下实施系统,与Agile、Spring、Hibernate和GWT合作。计算机科学的高等教育。TDD课程。了解敏捷方法、描述的活动、TDD和BDD。有良好的沟通能力
在本例中,“Description:”之后和“Note:”之前的子字符串,但第二个单词(Note:)可以是任何单词。这就是为什么我觉得我需要一个正则表达式,但不知道它是什么
# 1 楼答案
如果您使用的是(<;=)jdk1。6,正如您所说,文本可能长,我不会使用^{,以避免潜在的内存问题
regex可以直接在两个
:
之间获取内容:与组:
:([^:]*):
无组:
(?<=:)[^:]*
# 2 楼答案
上面的代码查找
:
字符的第一个索引并存储它。然后,它将查找原始文件之后的下一个:
。如果找到第二个冒号(if
语句),则解析并存储该字符串String.substring
包含第一个索引,不包含最后一个索引。要修剪任何前导或尾随空格,请在已解析行的末尾添加.trim()
。要仅扫描第一个冒号,请使用以下命令。(这会修剪绳子)需要注意的是,java中的字符串是不可变的。起初的子字符串不会更改原始字符串,只返回子字符串字符的新字符串
# 3 楼答案
可以使用split方法,如下所示:
传递给split方法的参数是一个正则表达式,它返回一个字符串数组,每个除法都包含该数组
例如,上面显示的方法将返回以下输出: