对于字符串值"ABCD_12"(包括引号),我想只提取内容并排除双引号即ABCD_12.我的代码是:
private static void checkRegex()
{
final Pattern stringPattern = Pattern.compile("\"([a-zA-Z_0-9])+\"");
Matcher findMatches = stringPattern.matcher("\"ABC_12\"");
if (findMatches.matches())
System.out.println("Match found" + findMatches.group(0));
}
Run Code Online (Sandbox Code Playgroud)
现在我尝试过findMatches.group(1);,但只返回字符串中的最后一个字符(我不明白为什么!).
如何只提取留下双引号的内容?
试试这个正则表达式:
Pattern.compile("\"([a-zA-Z_0-9]+)\"");
Run Code Online (Sandbox Code Playgroud)
要么
Pattern.compile("\"([^\"]+)\"");
Run Code Online (Sandbox Code Playgroud)
您的代码中的问题是错误的+外部右括号.这导致捕获组只捕获1个字符(因为+在外面),这就是为什么你最终只得到最后一个字符.
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |