当前位置: 首页 > 知识库问答 >
问题:

拆分String数组时如何转义正则表达式

宰父淳
2023-03-14

我在寻找一个更简单的解决方案。我是Java新手,需要一点帮助。我正试图用这个“],[”将字符串拆分成字符串[]。问题是Java试图像正则表达式一样获取这些,而我不想使用它,因为我在这方面不够好。我只想用这三个字符"],[";以下是我的代码:

String usefulData = ...;
String[] list = null;
String token = "],[";
list = usefulData.split(token);

这里是错误输出:线程“AWT-EventQueue-0”中的异常 java.util.regex.PatternSyntaxException:索引2附近的未关闭字符类],[...请问,有什么建议如何使这种想法有效?

PS.有没有其他方法可以拆分html" target="_blank">字符串?我不太喜欢这个正则表达式。我已经使用过Qt和C#,在这两个地方都有一种方法可以摆脱这种常规输出。谢谢很多人!

共有3个答案

巫新知
2023-03-14
String usefulData = ...;
String[] list = null;
String token = "],[";
list = usefulData.split(java.util.regex.Pattern.quote(token));
澹台硕
2023-03-14

您可以使用Pattern#在方法中构建字符串。

这样,您就不必使用反斜杠来转义特殊字符。Pattern.quote 使字符串中的所有特殊字符的行为都类似于字符串文字: -

String usefulData = "[a],[b],[c,d]";
String token = Pattern.quote("],[");
String[] list = usefulData.split(token);

for (String val: list) {
    System.out.println(val.replaceAll("\\[|\\]", ""));
}

输出:-

a
b
c,d
锺离阿苏
2023-03-14

您需要“\]\,\[”。

String usefulData = ...;
String[] list = usefulData.split("\\],\\[");

这是因为[]是正则表达式中的特殊字符。您必须使用\\转义它们才能将它们用作常规字符。

 类似资料:
  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 问题内容: 我想解决这个问题。 逗号:分割条款 双引号:字符串值(忽略特殊字符) 数组 例如: 输入: 预期输出: 但是我无法获得超越结果。 我写了下面的代码: 我的输出是: 我需要更改以获得预期的输出?我应该坚持使用正则表达式还是其他解决方案更灵活,更易于维护? 问题答案: 这个正则表达式可以达到目的: 它的工作原理是在逗号后添加一个用于匹配成对的方括号的预读-如果您 位于 方括号内,那么您当然

  • 转义字符串以在正则表达式中使用。 使用 String.replace() 来转义特殊字符。 const escapeRegExp = str => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); escapeRegExp('(test)'); // \\(test\\)

  • 我有一个在解析XML文档时收到的字符串: 如何使用正则表达式来完成? 多谢帮忙!

  • 问题描述 (Problem Description) 如何拆分正则表达式? 解决方案 (Solution) 下面的示例演示如何使用regex.Pattern类的Pattern.compile()方法和patternname.split()方法拆分正则表达式。 import java.util.regex.Pattern; public class PatternSplitExample {

  • 问题内容: 我正在尝试使用运算符-+ * /将正则表达式拆分为1.5 + 4.2 *(5 + 2)等式,以便将输出输入到数组中,以便我可以单独解析 我发现可以使用,但是如果我要保留小数点,它将不会拆分。 我已经尝试过分割,但是它不会在小数点上分割 问题答案: 您还可以使用?:避免捕获组。我把它简化了。