Подходим ближайшую группу, я не могу выразить это словами - PullRequest
2 голосов
/ 20 июня 2019

Я пытаюсь удалить сайт с наименьшим количеством возможных шагов, я упростил свою проблему до этого, потому что у меня есть проблемы с переводом проблемы в слова.

В настоящее время я тестирую это с помощью javascript на https://regexr.com/ для тестирования, но буду использовать его с Java, который до сих пор не имел проблем с переносом, но после нескольких разочаровывающих часов я не смог найти Решение, с регулярным выражением /".+?".+one/gmi и строкой a "witch" and her "broom" is one Я хотел сопоставить ближайшую группу в кавычках "broom" вплоть до слова one, но я продолжаю получать "witch" and her "broom" is one

/".+?".+one/gmi 
a "witch" and her "broom" is one

Ожидаемое: "broom" is one фактический результат: "witch" and her "broom" is one Я хочу только самое близкое совпадение в кавычках вместо первого.

обратите внимание, что это упрощенная версия проблемы, с которой я работаю, и она не сможет действительно сопоставить какой-либо конкретный символ, только группы, если вы хотите увидеть реальный код, с которым я работаю, тогда я буду рад включить его.

Код, с которым я на самом деле работаю

"6198609109": {
"id": 6198609109,
"word": "Choose the item below that describes the process of creating an image with the lowest file size that still renders a good quality image.\na. validation\nb. multimedia\nc. optimization\nd. bandwith",
"_wordTtsUrl": "Useless Link removed",
"definition": "c. optimization",
"_definitionTtsUrl": "Useless Link removed",
"definitionImageId": null
},
"6198630061": {
"id": 6198630061,
"word": "Select the code below that configures a background image to repeat horizontally across a web page.\na. repeat: across;\nb. background-repeat: repeat-x;\nc. background-repeat: no-repeat;\nbackground-repeat: repeat-y;",
"_wordAudioUrl": "Useless Link removed",
"definition": "b. background-repeat: repeat-x;",
"_definitionTtsUrl": "Useless Link removed",
"definitionImageId": null
},

* Сокращено для удобства чтения / ненужной информации Представьте себе эти объекты (показано больше, чем 2), и я пытаюсь сопоставить их с

"Select the code below that configures a background image to repeat horizontally across a web page.\na. repeat: across;\nb. background-repeat: repeat-x;\nc. background-repeat: no-repeat;\nbackground-repeat: repeat-y;",
"_wordAudioUrl": "Useless Link removed",
"definition": "b. background-repeat: repeat-x;"

Я пытаюсь сопоставить объект, который имеет Select the code below that configures a background image to repeat horizontally across a web page. как слово или определение в объекте, проблема в том, что любая попытка (которую я больше не могу найти или воссоздать) сопоставляет первые объекты "word":" и все до определения. Извините, если это не имеет смысла, я бы предпочел, чтобы вы ответили упрощенной версией

Моя основная проблема в том, что я не могу понять, использует: [^"]+ за исключением того, что он работает для целых слов и останавливается на этом, например: ".+?"/[^(".+?")]*one/gmi text: a "witch" and her "broom" is one output: "broom" is one

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Вы можете попробовать это регулярное выражение:

\"[^"]+\"[^"]+one

Это просто меняет все . в вашем регулярном выражении на [^"] - что угодно, кроме кавычек.

Это работает, потому что утверждает, что между соответствующей парой кавычек и one.

не должно быть другой кавычки.

Я сделал следующие предположения:

  • Все котировки сбалансированы
  • one всегда находится вне кавычек
  • Ближайшая цитата должна быть до one
0 голосов
/ 20 июня 2019

Попробуйте использовать это регулярное выражение, и этого недостаточно, напишите мне:

"[^"]+"[^"]+$

Вот демоверсия

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...