-1

I have a problem in the regular expression. It is giving an error when the expression set in the string. Look at this! I want returns an object in the Array that has the value of my search, for example "Daventry."

I am using: {[^{}\]]*Daventry[^{}\]]*}

[
    {
        "id": 113548,
        "name": "Daventry",
        "state_id": 1446,
        "state_name": "Northamptonshire",
        "state_code": "J1",
        "country_id": 232,
        "country_name": "United Kingdom",
        "country_code": "GB",
        "country_flag": "GB.png",
        "currency_code": "GBP",
        "currency_symbol": "£"
    },
    {
        "id": 192392,
        "name": "Daverdisse",
        "state_id": 484,
        "state_name": "Luxembourg",
        "state_code": "06",
        "country_id": 22,
        "country_name": "Belgium\n",
        "country_code": "BE",
        "country_flag": "BE.png",
        "currency_code": "EUR",
        "currency_symbol": "€"
    },
    {
        "id": 115981,
        "name": "Davey",
        "state_id": 4138,
        "state_name": "Nebraska",
        "state_code": "NE",
        "country_id": 233,
        "country_name": "United States\n",
        "country_code": "US",
        "country_flag": "US.png",
        "currency_code": "USD",
        "currency_symbol": "$"
    },
    {
        "id": 142184,
        "name": "David",
        "state_id": 3350,
        "state_name": "Neamt",
        "state_code": "28",
        "country_id": 181,
        "country_name": "Romania\n",
        "country_code": "RO",
        "country_flag": "RO.png",
        "currency_code": "RON",
        "currency_symbol": "lei"
    },
    {
        "id": 108261,
        "name": "David",
        "state_id": 4127,
        "state_name": "Kentucky",
        "state_code": "KY",
        "country_id": 233,
        "country_name": "United States\n",
        "country_code": "US",
        "country_flag": "US.png",
        "currency_code": "USD",
        "currency_symbol": "$"
    }
]

And only returns:

[
        {
            "id": 113548,
            "name": "Daventry",
            "state_id": 1446,
            "state_name": "Northamptonshire",
            "state_code": "J1",
            "country_id": 232,
            "country_name": "United Kingdom",
            "country_code": "GB",
            "country_flag": "GB.png",
            "currency_code": "GBP",
            "currency_symbol": "£"
        }
]

However gives the following error:

java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1: 10-27 09:53:48.297 15052-15052/com.plugapps.freecommerce E/AndroidRuntime: {[/^{}]]Daventry[/^{}]]}

What do I do?

2
  • Instead of trying regex, use Json parsing you can get objects as separate array. Commented Oct 28, 2015 at 13:30
  • @GIRIDHARANARI want to use because I have a file of 100,000 objects, however the search in Android is very slow. Commented Oct 28, 2015 at 15:47

1 Answer 1

0

In regex expression,'{','[' and so on are special character and need to be escaped,so you should use \{ to express {,so your refex expression is wrong so such a exception throws.
Actually I don't suggest you use regex experssion to search in your situation,you'd better parse a jsonarray and check every jsonobject's name.

Sign up to request clarification or add additional context in comments.

1 Comment

I will take a test again. I want to use because I have a file of 100,000 objects, however the search in Android is very slow.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.