#python #regex
#python #регулярное выражение
Вопрос:
Мне нужно регулярное выражение, которое может найти все $ gme или gme. Он не должен находить $ gme или gme в строке типа
привет, $ gmee
или
привет, g $ gme
Так, например, в строке, такой как
Привет, gme. Привет, $ gme. Привет, $ gmee. Привет, gmee.
Он должен найти только gme или $ gme из приведенной выше строки.
Он также должен найти gme или $ gme, когда перед или после строки нет пробела, например
$ gme
или
gme
Я пишу скрипт, который может подсчитывать, сколько раз $ gme или gme упоминается в строке
Итак, в строке типа
Привет, gme. Привет, $ gme. Привет, $ gmee. Привет, gmee.
Это упоминается только два раза.
Надеюсь, теперь все ясно.
Регулярное выражение, которое я пробовал
$gme$|sgmes|sgme|^gmeS
Смотрите демонстрационный скриншот.
Вышеприведенный сбой, когда до и после $ gme или gme нет пробела. А также оно включает gmee и $ gmee, которые я не хочу включать.
Комментарии:
1. Написание скрипта для запрета спама $ gme на wsb?
Ответ №1:
Вы можете использовать сочетание пробелов и границ слов:
(?<!S)$?gmeb
Смотрите демонстрацию регулярных выражений
Подробные сведения:
(?<!S)
— отрицательный взгляд назад, который не соответствует совпадению, если сразу слева от текущей позиции нет символа, не содержащего пробелов (таким образом, начало строки или пробел должны появляться сразу слева)$?
— необязательный$
символgme
— словоb
— щедрое слово.