/ Регекс Java / відповідність певних частин підрядків JSON - java, regex, json, string

Java regex для відповідності певним частинам підрядків JSON - java, regex, json, string

Я намагаюся написати регулярний вираз, який шукає рядки з наступним малюнком:

  1. Почніть з відкриваючого кронштейна { з наступною подвійною цитатою "
  2. Потім вводиться рядок з 1+ буквено-цифрових символів a-zA-Z0-9
  3. Потім ще одна подвійна цитата " слідом за двокрапкою : і відкриваюча дужка [
  4. Потім дозволяє ввести будь-який рядок з 0+ буквено-цифрових символів a-zA-Z0-9

Тож деякі рядки, що б відповідати регулярному вираженню:

{"hello":[blah
{"hello":[
{"1":[

І деякі струни, які б ні матч:

{hello:[blah
hello":[
{"2:[

Поки що найкраще мені вдалося придумати:

String regex = "{"[a-zA-Z0-9]+":[[a-zA-Z0-9]*";
if(myString.matches(regex))
// do something

Але я знаю, що я далеко від бази. Чи зможе будь-який гуру регексу допомогти перемотати мене? Дякую заздалегідь!

Відповіді:

5 за відповідь № 1
String regex = "{"[a-zA-Z0-9]+":[[a-zA-Z0-9]*";

Проблема тут полягає в тому, що вам потрібен додатковий нахил перед квадратною дужкою. Це тому, що вам потрібно регулярний вираз містити [ щоб відповідати квадратній дужці, що означає рядок буквальний потрібно містити \[ щоб уникнути зворотної косої лінії для аналізатора коду Java. Так само вам може знадобитися втекти { в регулярному вираженні, оскільки це метахарактер (для обмеженого числа повторень)

String regex = "\{"[a-zA-Z0-9]+":\[[a-zA-Z0-9]*";