当前位置: 首页 > 面试题库 >

在Java中使用Regex分割字串

钱卓君
2023-03-14
问题内容

任何人都可以通过正则表达式来帮助我。

我想将以下字符串拆分为数字,字符串号

"810LN15"

一种方法要求返回810,另一种要求LN,另一种应返回15。

唯一真正的解决方案是使用正则表达式,因为数字的长度会增加

我可以使用什么正则表达式来适应呢?


问题答案:

String.split 不会给您想要的结果,我猜应该是“ 810”,“ LN”,“ 15”,因为它必须寻找一个要分裂的令牌并剥夺该令牌。

尝试PatternMatcher替代,使用此正则表达式:(\d+)|([a-zA-Z]+),这将匹配数字与字母的顺序,并获得不同数量/文组(即“AA810LN15QQ12345”将导致群体“AA”,“810”,“LN”,“15”
,“ QQ”和“ 12345”)。

例:

Pattern p = Pattern.compile("(\\d+)|([a-zA-Z]+)");
Matcher m = p.matcher("810LN15");
List<String> tokens = new LinkedList<String>();
while(m.find())
{
  String token = m.group( 1 ); //group 0 is always the entire match   
  tokens.add(token);
}
//now iterate through 'tokens' and check whether you have a number or text


 类似资料:
  • 问题内容: 我有一个字符串如下: 我想提取数字:872226816,因此在这种情况下,我假设在第二个逗号开始读取数据之后,随后的逗号结束数据读取。 输出示例: 问题答案: 用于String.split()的 Javadoc

  • 我正在逐行阅读.csv文件。例如,一行可以如下所示:。 现在我想拆分根据 ",": <>字符串[]拆分=str.split (",");现在的问题是,这只会导致2个元素,但我想有5个元素,前两个元素应该包含10和1,其他3应该只是一个空字符串。 另一个例子是,它只产生一个元素,但我想要5个元素。 最后一个例子是< code>String str = "9,,,1,," 给出了2个元素(9和1),但

  • 问题内容: 我有一个字符串: 我想用分隔符和一个特殊字符分隔此字符串。 为此,我正在使用: 如何保留定界符? 问题答案: 使用(正)前瞻,以便正则表达式断言特殊字符存在,但实际上并不与之匹配: 实际观看:

  • 问题内容: 我有一个像这样的字符串: 我想拆分该字符串并选择作为分隔符。 我的代码如下所示: 我得到的是一个包含所有字符作为一个条目的数组: 有人知道为什么吗? 我不能用分割字符串吗? 问题答案: 在RegEx中被视为。因此,您需要对其进行转义:

  • 问题内容: 每当出现“”时,我都尝试拆分字符串,例如语句test abc。然后,将每个单词中的第一个字母从头到尾移动。我将字母移动到使用原始字符串 所以我的问题是,我将如何分割字符串,然后开始在分割字符串的每个部分中移动字母? 问题答案: 您不必为此进行-transform-join;一步就能做到。 正则表达式基本上分为3组: 那么,作为替换字符串使它明显和清晰,切换和周围。 因此,应该清楚的是,

  • String 类的 split() 方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。该方法主要有如下两种重载形式: 其中它们的含义如下: str 为需要分割的目标字符串。 sign 为指定的分割符,可以是任意字符串。 limit 表示分割后生成的字符串的限制个数,如果不指定,则表示不限制,直到将整个目标字符串完全分割为止。 使用分隔符注意如下: 1)“.”和“|”都是转