如果我有一个类似“ 11E12C108N”的字符串,该字符串是字母组和数字组的串联,那么如何在没有分隔符的情况下拆分它们?
例如,我希望得到的拆分为:
tokens[0] = "11"
tokens[1] = "E"
tokens[2] = "12"
tokens[3] = "C"
tokens[4] = "108"
tokens[5] = "N"
我现在有这个。
public static void main(String[] args) {
String stringToSplit = "11E12C108N";
Pattern pattern = Pattern.compile("\\d+\\D+");
Matcher matcher = pattern.matcher(stringToSplit);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
这给了我:
11E
12C
108N
我可以一次完成原始正则表达式的完全分割吗?不必在中间令牌上再次运行正则表达式?
使用以下正则表达式,并获取所有匹配项的列表。那就是您要寻找的。
\d+|\D+
在Java中,我认为代码如下所示:
Matcher matcher = Pattern.compile("\\d+|\\D+").matcher(theString);
while (matcher.find())
{
// append matcher.group() to your list
}
问题内容: 我有以下显示这种格式的文件名: 我想提取第二个下划线之后和之前的中间两个时间戳部分。因此,我使用了以下Python正则表达式字符串拆分: 但这在返回的列表中给了我两个额外的空字符串: 如何仅获取两个时间戳信息?即我想要: 问题答案: 不要使用,使用正则表达式/对象的方法。 您甚至可以命名捕获组并在字典中检索它们,尽管您使用的不是。(这种情况下的regex模式将类似于)
其中,我需要包括连字符和空格。 这意味着还必须可以输入值“”。
我有以下正则表达式在Java: 如果输入“a334234234”,验证将失败。但是,如果输入“a3423423fsfsdf”,验证将成功。。。 以下正则表达式也是如此,它检查输入是否仅为数字: 如果输入4SASD,验证将失败,但如果输入3dfsdf22,验证将成功。你能帮我做这个吗?
我试图构建一个正则表达式来匹配这些字符串: jfldfldf ldjfdlf ldfl ldfldf 8998 dfjldjf 89dfdf DF899 ljdljf[dff]DFDFDF(fdfdf)898 要求: 字符串应仅以任何小写或大写字符(A-Z)开头 它可能包含空格或括号() 不允许任何其他特殊字符 我尝试了,但它仍然接受其他特殊字符。
我使用的是PHP,但对正则表达式不是很好。我需要一个preg_替换,如果字母或数字相邻,可以添加空格。 这些是场景: 谢谢