Я хочу захватить несмежный текст из строки, используя регулярное выражение, и мне очень сложно. (Не могу заставить его работать)Непрерывный текст Захват с регулярными выражениями. Как мне это сделать?
я следующее:
"Джон KC Mary V апельсины."
KC и V - это теги, и они всегда будут существовать в моих строках. В этом случае я хочу захватить «John V апельсины».
Так что я хочу удалить KC и everthing до V (за исключением V).
Я не могу понять, как это сделать. Я делаю это на Java-коде, поэтому я думаю, что у меня есть некоторые синтаксические ограничения для регулярных выражений.
И еще одно ограничение заключается в том, что мне нужно сделать это только с использованием регулярных выражений. Я не могу использовать java replace.
Если вы, ребята, можете дать мне несколько идей, я действительно буду aprecciate.
спасибо.
AFAIK невозможно получать не непрерывные части ввода в одном совпадении. Вам нужно будет использовать группы и/или заменить, чтобы достичь того, чего вы хотите. – Nyx
1. Где это в общем тексте, start/middle/end и т. Д.? 2. Вы ищете словосочетания («Jonh», «апельсины») или любые символы, вверх/до/после/перед чем-либо еще? – sln
В большинстве двигателей (не Dot-Net) существует небольшое ограничение на группировку. Информация о массиве Geting для каждого совпадения будет ограничена одним уровнем фиксированной, неквалифицированной скобки. Вы можете сделать (John) KC Mary V (апельсины) ', но если вы сделаете' (? :(John) KC Mary V (апельсины). +?) + 'Группы захвата 1 и 2 будут перезаписаны каждый квантованный проход выражение. Эффективно содержит последние значения, найденные у Джона, апельсинов. – sln