Захватить все символы между символом совпадения (одиночный или повторяющийся) на строкеJAVA

Программисты JAVA общаются здесь
Anonymous
Захватить все символы между символом совпадения (одиночный или повторяющийся) на строке

Сообщение Anonymous »

Я пытаюсь извлечь строку, предшествующую конкретному символу (даже когда символ повторяется, как это (то есть: подчеркивание '_'): < /p>

Код: Выделить всё

this_is_my_example_line_0
this_is_my_example_line_1_
this_is_my_example_line_2___
_this_is_my_ _example_line_3_
__this_is_my___example_line_4__
< /code>

, и после запуска моего резервуара я должен получить это (regex должна игнорировать любые экземпляры соответствующего символа в середине строки): < /p>

this_is_my_example_line_0
this_is_my_example_line_1
this_is_my_example_line_2
this_is_my_ _example_line_3
this_is_my___example_line_4
< /code>

 Другими словами, я пытаюсь «обрезать» соответствующие символы (ы) в начале и конце строки. />  До сих пор я могу сделать это только успешно, например, 3 с помощью этой Regexp: < /p>

/[^_]+|_+(.*)[_$]+|_$+/

[^_]+ not 'underscore' once or more
| OR
_+ underscore once or more
(.*) capture all characters
[_$]+ not 'underscore' once or more followed by end of line
|_$+ OR 'underscore' once or more followed by end of line
< /code>

Я только что понял, что это исключает первое слово сообщения на примере 0,1,2, так как строка не начинается с недостатка, и оно начинает совпадать только после поиска поднятия.
меня не волнует первого персонажа (хотя это было бы хорошо) Мне нужно только игнорировать повторяющегося персонажа в конце. Похоже, что (этим тестером режима) просто будет работать, сработает? /() _+$/
Пустое скобки что -то соответствует одному перед одним или повторением совпадает в конце строки .. это было бы правильно?

Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/169 ... -on-string

Вернуться в «JAVA»