【问题标题】:java regular expression extraction of first n characters from an alphanumeric Stringjava正则表达式从字母数字字符串中提取前n个字符
【发布时间】:2016-12-09 12:53:00
【问题描述】:

如何从 Java 中的字母数字字符串中提取前 3 个字符? 例如,如果字母数字字符串是 12A12D3F34DFdHNB38HG。所以我想提取ADF

【问题讨论】:

  • 你使用的代码呢?此外,非重读拉丁字母不是唯一的字母字符......
  • 发布您的代码。这个正则表达式应该可以正常工作。
  • 看到Strings 完全由characters 组成,不清楚您所说的“它仅在字符串以字符开头时才有效”是什么意思。请包括您迄今为止尝试过的内容以及您遇到的问题的清晰描述。 “它不起作用”不是我们可以诊断的。
  • 你可以使用 Pattern.compile("[a-zA-Z]{3}")

标签: java regex


【解决方案1】:

要提取字符串的前三个字符,您可以简单地使用 String 类中的 substring() 方法。

String firstThreeCharacters = str.substring(0, 3);

如果这不是您所要求的,请澄清您的问题,因为它可以说是模棱两可的。

编辑:@Wiktor Stribiżew 对您澄清的问题有一个很好的答案。我在这里重新发布它,以使其他用户更容易看到答案。

String firstThreeCharacters = str.replaceAll("(?i)^[^a-z]*([a-z])[^a-z]*([a-z])[^a-z]*([a-z]).*$", "$1$2$3")

【讨论】:

  • 实际上我有一个字母数字字符串。例如-A12D3F376HF7H23H87JH。所以我想提取前三个字母,所以我希望输出是 ADF
【解决方案2】:

您需要的模式为:[a-zA-z0-9]{3}

【讨论】:

  • no 此模式提取前三个字符,无论是数字还是字母。我只想提取字母
猜你喜欢
  • 2023-03-22
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 2019-08-07
  • 1970-01-01
  • 2011-12-05
相关资源
最近更新 更多