powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / регулярные выражения
14 сообщений из 14, страница 1 из 1
регулярные выражения
    #34619709
Фотография Dimyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста составить регулярное выражение которое бы из строки, напрмер:
раз_два_три_четыре
выбирало бы слово между вторым и третим знаком _
...
Рейтинг: 0 / 0
регулярные выражения
    #34620019
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimyan wrote:

> выбирало бы слово между вторым и третим знаком _
Не получится. Только если строку через sed прогнать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
регулярные выражения
    #34620020
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дурацкий вариант, но работает
Код: plaintext
[^_]*_[^_]*_([^_]*).*
...
Рейтинг: 0 / 0
регулярные выражения
    #34620043
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0 wrote:

> [^_]*_[^_]*_([^_]*).*
Оно всю строку выберет, как я понимаю, ему нужно только кусок между 2м и 3м
знаком.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
регулярные выражения
    #34620049
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV wrote:

> Оно всю строку выберет, как я понимаю, ему нужно только кусок между 2м и
> 3м знаком.
Если, конечно, реализация regExp'ов не позволяет выбирать аргументы по
номеру скобок.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
регулярные выражения
    #34620057
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
Оно всю строку выберет, как я понимаю, ему нужно только кусок между 2м и 3м
знаком.
там есть сохраняющие скобки, которые и сохранить вам искомое слово, нужно только его вытащить (как это уже от языка зависит), вот пример для java:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class Test {

    public static final String SOURCE = "firts_second_third_fouth";

    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("[^_]*_[^_]*_([^_]*).*");
        Matcher matcher = pattern.matcher(SOURCE);
        
        if(matcher.matches()) {
            System.out.println(matcher.group( 1 ));
        }
    }
}
...
Рейтинг: 0 / 0
регулярные выражения
    #34620170
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0 wrote:

> там есть сохраняющие скобки, которые и сохранить вам искомое слово, нужно
> только его вытащить (как это уже от языка зависит), вот пример для java:
О чем и говорил. Если реализация regExp позволяет выбрать аргумент по номеру
скобок - то тогда так. А если не позволяет - то тогда болт.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
регулярные выражения
    #34620621
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну
^[^_]*_[^_]*_([^_]*)_.*
...
Рейтинг: 0 / 0
регулярные выражения
    #34620957
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo wrote:

> ^[^_]*_[^_]*_([^_]*)_.*
тогда уж
^([^_]*_){2}([^_]*)_.*$
или
([^_]*_){2}([^_]*)_.*
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
регулярные выражения
    #34621168
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лишние скобочки промачатся
...
Рейтинг: 0 / 0
регулярные выражения
    #34621171
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но это уже обсасывание
...
Рейтинг: 0 / 0
регулярные выражения
    #34621533
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo wrote:

> лишние скобочки промачатся
По хорошему у регэкспа должна быть возможность получать содержимое первых 9
скобок, хотя бы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
регулярные выражения
    #34624251
Sun_newbie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> выбирало бы слово между вторым и третим знаком _
> Не получится. Только если строку через sed прогнать.

Есть элегантное решение для awk:
awk -F_ '{print $3}'
...
Рейтинг: 0 / 0
регулярные выражения
    #34624300
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sun_newbie wrote:

> awk -F_ '{print $3}'
sed 's/.*_.*_\(.*\)_.*/\1/g'
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / регулярные выражения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]