2015-11-06 2 views
-3

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

Как &, у меня есть несколько других сепараторов например , ; \/- | (JT)

Как я могу добиться этого?

+2

Это немного расплывчато - не могли бы вы разместить больше примеров входных строк и желаемого результата? Например, если регулярное выражение удалит все после того, как будет найден первый разделитель? В строке или для всей строки? Должно ли оно относиться ко всем сепараторам одинаково? –

+0

Пример: FirstName & LastName Ожидаемый результат = FirstName – uttara

+0

Как насчет всех других разделителей? Каким сепаратором является '(JT)'? Измените свой пост и добавьте несколько примеров. Используйте Ctrl-K, чтобы отложить их 4 пробела, чтобы они были отформатированы как «сырой текст». –

ответ

0

С .*& Вы соглашаетесь с текстом до и после этого последние& в вашем тексте. Если вы не хотите включать в себя, что в матче, поставить его в positive lookahead assertion:

.*(?=&) 

Для поиска более одного сепаратора, использовать alternation и character class:

.*(?=[&,;\\/|-]|\(JT\)) 

Обратите внимание, что это изменит что-то вроде

First, Middle & Last 

в

First, Middle 

, потому что матч останавливается перед последним разделителем. Если вы хотите, чтобы остановить на первого сепаратора, использовать ленивым quantifier:

.*?(?=[&,;\\/|-]|\(JT\)) 

Обратите внимание, что вам нужно, чтобы избежать обратной косой черты для струнного процессора, так что регулярное выражение, написанное в виде строки, будет выглядеть например

".*?(?=[&,;\\\\/|-]|\\(JT\\))" 
+0

Благодарим за сообщение. – uttara

+0

Благодарим за сообщение. Я попробовал регулярные выражения, которые вы предоставили. Ввод I, предоставленный FirstName (JT) LastName, и вывод, который я получил, - ** FirstName, ** где ожидаемым выходом является «FirstName». – uttara

+0

Вы хотите сказать, что пространство после FirstName должно быть удалено? Тогда вы не должны использовать '' (JT) '' как разделитель, а '' (JT). Просто добавьте пробелы в регулярное выражение, где вы хотите, чтобы они соответствовали друг другу. –

Смежные вопросы