Я намагаюся написати регулярний вираз, який шукає рядки з наступним малюнком:
- Почніть з відкриваючого кронштейна
{
з наступною подвійною цитатою"
- Потім вводиться рядок з 1+ буквено-цифрових символів
a-zA-Z0-9
- Потім ще одна подвійна цитата
"
слідом за двокрапкою:
і відкриваюча дужка[
- Потім дозволяє ввести будь-який рядок з 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 за відповідь № 1String regex = "{"[a-zA-Z0-9]+":[[a-zA-Z0-9]*";
Проблема тут полягає в тому, що вам потрібен додатковий нахил перед квадратною дужкою. Це тому, що вам потрібно регулярний вираз містити [
щоб відповідати квадратній дужці, що означає рядок буквальний потрібно містити \[
щоб уникнути зворотної косої лінії для аналізатора коду Java. Так само вам може знадобитися втекти {
в регулярному вираженні, оскільки це метахарактер (для обмеженого числа повторень)
String regex = "\{"[a-zA-Z0-9]+":\[[a-zA-Z0-9]*";