Извлечь подстроки из строки во флаттере, используя регулярное выражение

Я хочу извлечь подстроки из строки, используя регулярное выражение в флаттере.

Например: если строка "HI hello @shemeer how are you @nijin", ожидаемый результат будет [shemeer,nijin]

Ввод: String s= "HI hello @shemeer ul haq how are you @nijinsha rah"

Выход: output=["shemeer ul haq","nijinsha rah"]

Кто-нибудь знает это, пожалуйста, помогите мне

вы должны вызвать метод allMatches, все, что вам нужно, это написать правильный RegExp - есть много онлайн-руководств о том, как это сделать

pskink 09.04.2023 10:14
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
1
60
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете разбить строку на слова, а затем найти @ и создать список на его основе.

    final names = data
        .split(" ")
        .where((element) => element.startsWith("@"))
        .map((e) => e.substring(1))
        .toList();

Или используйте allMatches с RegExp(r'@\w+'), как pskink упомянул в комментарии.

final names = RegExp(r'@\w+')
    .allMatches(data)
    .map((e) => e.group(0)!.substring(1))
    .toList();

надеюсь, ты понял

Yeasin Sheikh 10.04.2023 17:33

Я обновил запрос, пожалуйста, проверьте и ответьте

Shemeer 10.04.2023 19:03

Вы можете задать новый вопрос, пока он отличается от предыдущего. И хотя длина слов имени может быть разной, я не знаю об этом регулярном выражении.

Yeasin Sheikh 10.04.2023 19:25

Вы можете попробовать использовать этот шаблон регулярного выражения: (?<=@)\w+

RegExp exp = RegExp(r'(?<=@)(\w+)');
String str = 'HI hello @shemeer how are you @nijin';
Iterable<RegExpMatch> output = exp.allMatches(str);
for (final m in output) {
  print(m[0]);
}

Другие вопросы по теме