gpt4 book ai didi

java - 正则表达式 : How to escape []?

转载 作者:行者123 更新时间:2023-12-01 19:06:20 25 4
gpt4 key购买 nike

我正在处理像 "[ro.multiboot]: [1]" 这样的字符串。如何从该字符串中选择 1(也可以是 0)?

我正在寻找 Java 中的正则表达式。

最佳答案

通常,您会执行类似的操作(假设 0 和 1 是唯一的选项):

^.*\[([01])\].*$

如果您只需要 ro.multiboot 的值,您可以将其更改为如下内容:

^.*\[ro.multiboot\].*\[([01])\].*$

(取决于任何非括号内的内容允许的复杂程度)。

这些基本上都只会提取方括号之间的值(如果为零或一),并将其捕获到捕获变量中,以便您可以使用它。

当然,正则表达式不是世界范围的标准,您使用它的环境也不是。这意味着它在很大程度上取决于您的实际环境,您将如何实际编码。

<小时/>

对于 Java,以下示例程序可能会有所帮助:

导入java.util.regex.*;

class Test {
public static void main(String args[]) {
Pattern p = Pattern.compile("^.*\\[ro.multiboot\\].*\\[([01])\\].*$");
String str;
Matcher m;

str = "[ro.multiboot]: [0]";
m = p.matcher (str);
if (m.find()) {
System.out.println ("str0 has " + m.group(1));
}

str = "[ro.multiboot]: [1]";
m = p.matcher (str);
if (m.find()) {
System.out.println ("str1 has " + m.group(1));
}

str = "[ro.multiboot]: [2]";
m = p.matcher (str);
if (m.find()) {
System.out.println ("str2 has " + m.group(1));
}
}
}

这会导致(如预期):

str0 has 0
str1 has 1

关于java - 正则表达式 : How to escape []?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9938093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com