Я хочу построить регулярное выражение, которое соответствует либо '
либо "
, а затем соответствует другим символам, заканчивающимся, когда '
или "
соответственно соответствует, в зависимости от того, что было встречено в самом начале. Таким образом, эта проблема кажется достаточно простой, чтобы решить ее с помощью обратной ссылки в конце; вот некоторый код регулярного выражения ниже (это на Java, поэтому обратите внимание на дополнительные escape-символы, такие как \
перед "
):
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"
Использование приведенного выше регулярного выражения приведет к сбою в начальной части при обнаружении '
, затем оно будет продолжено и успешно совпадет с 'может быть взят'
... но этого явно недостаточно, мне нужно, чтобы вся строка соответствовала
Я думаю, что мне нужен способ игнорировать тип кавычки, который НЕ был сопоставить в самой первой группе, включив его в качестве символа в набор символов 3-й группы.Однако я не знаю, как это сделать.Есть ли какая-то скрытая функция обратной ссылки НЕ или что-то в этом роде? Что-то, что я могу использовать для ссылки на персонажа в 1-й группе, который НЕ был сопоставлен?? Или каким-то другим образом решить мою затруднительную ситуацию?