作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下字符串,我想从中提取 - 和 ^ 之间的字符串。而且我还想要 after - 的字符串,前提是它是给定字符串中的最后一个 -。
090186-1052^0901164-1052^090180046165-585^0980046166-24064^090186a980046170-24064^00046168-36495^0901846169-46731^0d019616e-34985^8004616f-13010^186a9846167-778
我已经编写了以下代码,但我得到了除 778 以外的所有值,而 778 是 null
。
public static void main(String args[]){
Pattern pattern = Pattern.compile("-(.+?)\\^|-(.+)");
String str = "090186-1052^0901164-1052^090180046165-585^0980046166-24064^090186a980046170-24064^00046168-36495^0901846169-46731^0d019616e-34985^8004616f-13010^186a9846167-778";
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
}
最佳答案
合适的正则表达式是
Pattern pattern = Pattern.compile("-(.+?)(?:\\^|$)");
内容如下:-
后跟任何字符(分组的、不情愿的),后跟(非捕获的)^
或输入结束符。
这样匹配的号码总是在第一组。
关于java - 如何在 - 和 ^ 之间或 - 之后获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33166197/
我是一名优秀的程序员,十分优秀!