java - 使用正则表达式我怎样才能得到括号内的数字?
问题描述
举个例子,假设我在一个名字中搜索一组特定的数字
[3363]Burn the Witch Year 1958
在这种情况下,有 2 组相同长度的数字,我需要得到括号内的数字。如何搜索一组特定长度的数字,它们在括号内而不在答案中得到括号?
regexChecker("\\[\\d{3,4}\\]",longString);
示例代码的输出是[3347]
.
我用作练习的代码是:
public class PracticaPatrones {
public static void main(String[] args) {
String longString = "";
String[] Names = {"[3358]Maoujou de Oyasumi 1", "[3347]King's Raid; Ishi wo Tsugumono-tachi 2", "[3363]Burn the Witch 3", "[3283]Hachi-nan tte, Sore wa Nai deshou! 1", "[391]Denpa Onna to Seishun Otoko 1", "[0587] Onii-chan Dakedo Ai Sae Areba Kankeinai yo ne 11", "[870] Onii-chan Dakedo Ai Sae Areba Kankeinai yo ne 11"};
System.out.println(Names.length);
System.out.println("Bandera");
for (int i = 0; i < Names.length; i++) {
longString = Names[i];
regexChecker("\\[\\d{3,4}\\]", longString);
}
}
public static void regexChecker(String theRegex, String str2Check) {
Pattern checkRegex = Pattern.compile(theRegex);
Matcher regexMatcher = checkRegex.matcher(str2Check);
while (regexMatcher.find()) {
if (regexMatcher.group().length() != 0) {
System.out.println(regexMatcher.group().trim());
}
System.out.println("start index : " + regexMatcher.start());
System.out.println("end index : " + regexMatcher.end());
}
}
}
解决方案
可以使用正则表达式,(?<=\[)\d{3,4}(?=\])
可以解释如下:
(?<=\[)
在后面寻找[
\d{3,4}
寻找 3 到 4 位数字(它已经存在于您的问题中)(?=\])
展望未来]
演示:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("(?<=\\[)\\d{3,4}(?=\\])");
Matcher matcher = pattern.matcher("[3358]Maoujou de Oyasumi 1");
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
输出:
3358
推荐阅读
- powershell - SPI_GETCURSORSHADOW 0x101A - 无法获取布尔值
- python - 查找给定子字符串 Python 的最长连续运行
- python - 检查字符串是否具有 .pdf 扩展名
- javascript - Javascript 匹配正则表达式行为
- php - 在 bool 上调用成员函数 execute()
- c# - ASP.Net MVC 找不到控制器中未包含的命名空间
- javascript - 尝试在 react-router 中实现 react-transition-group 会产生错误:'元素类型无效......'
- scala - Scala 中间早期初始化器
- c# - XAML 中使用 Lambda 表达式和 MVVM 模式的 OneWay/TwoWay 绑定
- android - 构建项目时出现重复的类错误