Java中两个定界符之间的子字符串

哈米德

我有一个字符串为:

<head>

    <script type="text/javascript">window._timings = {"domLoading": Date.now()}</script>

        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
<script type="text/javascript">window._sharedData = {"country_code": "IR", "language_code": "en", "gatekeepers": {"cc": true, "sms": true, "ra": true}, "show_app_install": false, "static_root": "//instagramstatic-a.akamaihd.net/h1", "platform": "web"};</script>
<script src="//instagramstatic-a.akamaihd.net/h1/bundles/en_US_ProfilePage.js/88ce62d41e70.js" type="text/javascript" crossorigin="anonymous"></script>

我只需要提取:

{"country_code": "IR", "language_code": "en", "gatekeepers": {"cc": true, "sms": true, "ra": true}, "show_app_install": false, "static_root": "//instagramstatic-a.akamaihd.net/h1", "platform": "web"}

在这方面需要帮助。

特卡丘科

就简单的字符串解析而言,您可以使用以下函数:

public static String between(String start, String end, String input) {
    int startIndex = input.indexOf(start);
    int endIndex = input.lastIndexOf(end);
    if(startIndex == -1 || endIndex == -1) return input;
    else return input.substring(startIndex + start.length(), endIndex + end.length()).trim();
}

在这种情况下,用法如下:

String input = "<head>\n" +
        "\n" +
        "    <script type=\"text/javascript\">window._timings = {\"domLoading\": Date.now()}</script>\n" +
        "\n" +
        "        <meta charset=\"utf-8\">\n" +
        "        <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n" +
        "<script type=\"text/javascript\">window._sharedData = {\"country_code\": \"IR\", \"language_code\": \"en\", \"gatekeepers\": {\"cc\": true, \"sms\": true, \"ra\": true}, \"show_app_install\": false, \"static_root\": \"//instagramstatic-a.akamaihd.net/h1\", \"platform\": \"web\"};</script>\n" +
        "<script src=\"//instagramstatic-a.akamaihd.net/h1/bundles/en_US_ProfilePage.js/88ce62d41e70.js\" type=\"text/javascript\" crossorigin=\"anonymous\"></script>";
System.out.println(between("window._sharedData =", "}", input));

结果符合预期:

{"country_code": "IR", "language_code": "en", "gatekeepers": {"cc": true, "sms": true, "ra": true}, "show_app_install": false, "static_root": "//instagramstatic-a.akamaihd.net/h1", "platform": "web"}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

两个相同或不同定界符之间的子字符串(当定界符出现多次时)

在字符串中的两个定界符之间应用Perl替换

在两个定界符之间替换子字符串,或者直到字符串结尾

当两个定界符在字符串中多次出现时,提取两个定界符之间的所有文本

JAVA Regex-查找两个定界符之间的子字符串-上次出现/和另一个模式

如何在两个定界符之间提取字符串

PHP RegEx替换两个相同定界符之间的字符串

存在字符串时如何在两个定界符之间提取文本

R语言-提取两个定界符之间的字符串

如何匹配两个定界符之间的字符串并在后面添加字符串

在C#中基于两个定界符分割字符串

在C ++中的两个定界符上分割字符串

在一个大字符串中获取定界符之间的所有子字符串

如何从两个定界符之间的字符串中获取一个值,然后将另一个值设置为定界符后面的值?

正则表达式以匹配两个定界符之间的确切字符串

如何删除两个定界符之间的字符?

PHP在定界符之间捕获子字符串

用两个定界符将字符串分成两列

将字符串中的值列表(由两个不同的定界符分隔)转换为单独的行

命令行:获取2个不同定界符之间的子字符串

如何用两个定界符分割字符串?

在两个定界符上分割字符串?

最好的方法是用两个不同的定界符来分割字符串,将两个词都大写(仅包含一个定界符,然后再添加两个定界符)?

Pandas DataFrame-提取两个字符串之间的字符串,并包含第一个定界符

在Perl中使用regex检索两个字符串定界符之间的字符串

如何将一个句子的字符串分隔为定界符(两个单词之间有空格)?

字符串中间定界符之间的T-SQL子字符串

仅当字符串位于两个定界符之间时,才如何将其与正则表达式匹配?

根据最后两个定界符将字符串分成两部分