Я хочу построить регулярное выражение, которое соответствует либо '
, либо "
, а затем соответствует другим символам, заканчивающимся, когда сопоставлены '
или "
, в зависимости от того, начало. Таким образом, эта проблема кажется достаточно простой, чтобы решить с использованием обратной ссылки в конце; вот некоторые регулярное выражение ниже код (это в Java, так возражаете дополнительные символы побега, такие как \
перед "
):Regex; обратное обращение к символу, который НЕ был сопоставлен в наборе символов
private static String seekerTwo = "(['\"])([a-zA-Z])([a-zA-Z0-9():;/`\\=\\.\\,\\- ]+)(\\1)";
Этот код будет успешно справляться с вещами, такими как:
"hello my name is bob"
'i live in bethnal green'
Проблема возникает, когда у меня есть строки вроде этого:
"hello this seat 'may be taken' already"
Использования выше регулярного выражения на нем не удастся на начальном участке при встрече '
, то он будет продолжать и успешно соответствовать 'may be taken'
... но этого явно недостаточно, мне нужно, чтобы вся строка была согласована.
Я думаю, что мне нужен способ игнорировать тип кавычки, который НЕ был сопоставлен в первой группе, включив его в качестве символа в наборе символов третьей группы. Однако я не знаю, как это сделать. Есть ли какая-то скрытая функция NOT backreference или что-то в этом роде? Что-то, что я могу использовать для ссылки на символ в 1-й группе, которая НЕ была сопоставлена ?? Или иначе какое-то решение моего затруднительного положения?
Привет и добро пожаловать в StackOverflow. Я взял на себя смелость переформатировать ваш пост немного. Вы можете нажать на ссылку редактирования, чтобы увидеть, как я это сделал. Очень важно знать, нужно ли вам отправлять код ... –