使用正则表达式从复杂字符串中查找子字符串

玛哈:

我有一个包含巨大脚本代码的字符串,如下所示:

String script = "node {
    stage(someString) {
        try {
            **parameters= [
                [someString],
        [someString],
        [someString],
        [someString],
        [someString],
        [someString],
            [someString],
            ]**
            //some more script
    }
}";

我想提取包含数组值数组的parameters变量

我尝试了以下模式,但没有起作用

Pattern pattern = Pattern.compile("parameters= [(.*?)]");

如何使用Regex从脚本字符串变量中提取parameter变量?

提前致谢!

Mandy8055:

您可以尝试使用:

parameters=\s*\[(.*)]

以上正则表达式的说明:

  • parameters=- parameters=从字面上匹配
  • \s* -匹配空白字符零次或多次。
  • \[- [从字面上匹配
  • (.*)]-表示一个捕获组,捕获之前的所有内容]

绘画作品

您可以在此处找到上述正则表达式的演示

用Java实现的示例:

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main
{
    private static final Pattern pattern = Pattern.compile("parameters=\\s*\\[(.*)]", Pattern.DOTALL);
    public static void main(String[] args) {
        String string = "node {\n"
     + "    stage(someString) {\n"
     + "        try {\n"
     + "            **parameters= [\n"
     + "                [someString],\n"
     + "        [someString],\n"
     + "        [someString],\n"
     + "        [someString],\n"
     + "        [someString],\n"
     + "        [someString],\n"
     + "            [someString],\n"
     + "            ]**\n"
     + "            //some more script";
    StringBuilder sb = new StringBuilder();
    Matcher matcher = pattern.matcher(string);
    while(matcher.find()){
        // Replaced all the unwanted spaces and commas. You can address that accordingly.
        sb.append(matcher.group(1).replaceAll("[\\s,]+", " "));
    }
    System.out.println(sb.toString());
}
}

请在此处找到上述实现的示例运行

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用正则表达式在Java中查找子字符串?

查找子字符串的正则表达式

使用Java使用正则表达式查找较大字符串的子字符串

正则表达式查找子字符串

复杂字符串的正则表达式

使用正则表达式查找/替换NSString中的子字符串

使用正则表达式查找字符串中的子词

使用正则表达式组替换字符串中的子字符串

用于从字符串中查找和删除子字符串或其变体的正则表达式

如何使用正则表达式在Bash中查找递归子字符串?

如何使用正则表达式在具有某些规则的字符串中查找子字符串?

如何在javascript中使用正则表达式在字符串中查找子字符串?

正则表达式-查找不包含子字符串的多行字符串

使用正则表达式查找字符串中是否存在子字符串之一

尝试使用正则表达式在字符串数组中查找子字符串的url

使用sed查找并替换复杂的字符串(最好使用正则表达式)

复杂字符串的Javascript正则表达式

复杂字符串的Python正则表达式

使用正则表达式在Java中查找子字符串

查找并用复杂的正则表达式替换html文件中的字符串

使用正则表达式在包含潜在字符的大字符串中查找子字符串

如何在php中使用正则表达式从字符串中查找子字符串?

正则表达式查找子字符串

如何在 Dart 中使用正则表达式查找字符串中的子字符串

使用正则表达式搜索字符串中的子字符串

使用正则表达式在c#中查找子字符串

正则表达式匹配复杂字符串

使用正则表达式的子字符串

如何使用正则表达式在 std::string 中查找子字符串