исключить конкретное слово и все, что идет после него - PullRequest
0 голосов
/ 03 июля 2019

У меня есть набор записей, как показано ниже:

AmirAShabani
Neda
Pouya Na via @gif
Roozbeh
Barsin
Neda via @sticker

Я хочу удалить «через» и все, что будет после него. То, что следует после этого, имеет следующий формат: via @word, где word - это просто алфавиты и дополнительные подчеркивания. Таким образом, вывод будет как:

AmirAShabani
Neda
Pouya Na
Roozbeh
Barsin
Neda

Я пытался это регулярное выражение :

([a-zA-Z ]+)(via @[a-zA-Z_ ])?

Но вывод:

AmirAShabani
Neda
Pouya Na via
Roozbeh
Barsin
Neda via

Я могу понять, почему это происходит, но не могу понять, как это решить. Как я могу исключить слово «через» и все, что идет после него?

Ответы [ 4 ]

2 голосов
/ 03 июля 2019

Попробуйте заменить регулярное выражение на \s+via.*$:

var input = "AmirAShabani\nNeda\nPouya Na via @gif\nRoozbeh\nBarsin\nNeda via @sticker";
var output = input.replace(/\s*via.*$/mg, '');
console.log(output);
1 голос
/ 03 июля 2019

Вы можете использовать это регулярное выражение:

/ via @[a-z_]*/gmi

И заменить на пустую строку.

var str = `AmirAShabani
Neda
Pouya Na via @gif
Roozbeh
Barsin
Neda via @sticker`;
var result = str.replace(/ via @[a-zA-Z_]*/gmi, "");
console.log(result);

Он ищет именно то, что вы указали - слово via, за которым следует пробел, затем @, за которым следуют буквы или подчеркивания. Я добавил пробел, чтобы он не совпадал с via, являющимися частью слова.

1 голос
/ 03 июля 2019

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

>>> li = ['AmirAShabani', 'Pouya Na via @gif' , 'Neda via @sticker', 'Roozbeh', 'Barsin']
>>> for i in range(0, len(li)):
...     li[i] = re.sub(r'\ via\ @\w+', '', li[i])
...
>>> print(li)
['AmirAShabani', 'Pouya Na ', 'Neda ', 'Roozbeh', 'Barsin']
0 голосов
/ 03 июля 2019
const input = "AmirAShabani\nNeda\nPouya Na via @gif\nRoozbeh\nBarsin\nNeda via @sticker";  
const output = input.split('\n').map(item => {
    const index = item.indexOf("via");
    return index > 0 ? item.substring(0, index - 1): item;
});
console.log(output.join('\n'));

Результат:

AmirAShabani
Neda
Pouya Na
Roozbeh
Barsin
Neda
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...