【问题标题】:split aplhanumeric string for house numbers [closed]拆分门牌号的字母数字字符串[关闭]
【发布时间】:2014-12-23 06:19:14
【问题描述】:

我需要从门牌号/单元号中提取数字范围。 示例 - 1B 至 36B, 1-B 至 36-B 或 B1 至 B36 或 乙 1 至乙 36 结果应该是 1 到 36

前缀或后缀字符或数字可以有任意长度。 ex B150 或 B1709 或 150B 或 150块或1709块

请告诉我如何在 Java 中实现这一点。

谢谢。

【问题讨论】:

标签: java regex alphanumeric string-split


【解决方案1】:

使用正则表达式来做到这一点。具体看看字符类、量词、组和捕获。

这是cheatsheet 的链接。

为了让您从这里开始,这是一个“类似”的示例。

String line = "36-B";
Pattern pattern = Pattern.compile("(\\d*)(.+)(\\d*)");
Matcher matcher = pattern.matcher(line);

while (matcher.find()) 
{
    System.out.println("First captured group: " + matcher.group(1));
    System.out.println("Second captured group: " + matcher.group(2));
    System.out.println("Thisr captured group: " + matcher.group(3));
}

如果您遇到问题,请告诉我们。编码快乐!!

【讨论】:

  • 我认为 string.replaceAll("[^0-9]","") 适用于我能想到的所有情况来捕获数值。
  • 这个正则表达式也可以正常工作。
  • 如果您对答案满意,请将答案标记为已接受。
猜你喜欢
  • 2020-10-05
  • 2021-10-25
  • 2019-05-26
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
相关资源
最近更新 更多