строка регулярного выражения в python очевидно проста, но как я могу заставить это работать? - PullRequest
1 голос
/ 24 марта 2020

Я пытаюсь написать строку регулярного выражения для Python, которая помогает мне в работе, но мне нужна небольшая помощь от вас. Буквально я хочу сказать, что слингер (новичок) должен быть оплачен между £ 13,99 / ч и £ 15,99 / ч, я новичок и понятия не имею об этом ... проблема в том, что слово слингер можно использовать в любые другие контексты, и я хочу, чтобы срабатывал только тогда, когда применяется более одного условия. (например, Slinger и 13.50 должны срабатывать, но не тогда, когда слово slinger само по себе). Я как-то придумываю это:

((S\/S)|(Slinger\/Signaller)|(Slinger)|(Banksman)|(\£\b1[4-6]\b)|(\b1[4-6]\b\£)|(\b1[4-6]p\/h\b))

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

(отредактировано)

Большое спасибо за ваши быстрые ответы, ребята. Чтобы сделать себя лучше, я хочу привести вам пример, поэтому, пожалуйста, взгляните на следующее предложение (сообщение):

"Slinger Требуется для продолжающейся работы в Центральном Лондоне. В настоящее время мы ищем Слингер CPCS для проекта на Бонд-стрит, должен иметь опыт работы (Blue Card) на работе на строительных площадках и быть квалифицированным стропальщиком. Заработная плата по договоренности от £ 13,99 / ч до 15,99 / ч (139,99-159,99 / день) для начинающего Slinger (Red Card) (по 10-часовой программе) или £ 16,00 / H до 18,00 / H (160–180 £ / день) для квалифицированного (Blue Card) Slinger. Для получения дополнительной информации, пожалуйста, свяжитесь с телефоном: 02131615139 "(иногда цены указаны в фунтах стерлингов в час, иногда в фунтах стерлингов в день.

Тысячи таких сообщений написаны в нашей группе с разными ставками оплаты и обсуждениями слингеров (как слово). I хотите отфильтровать (сопоставить) каждое сообщение, которое содержит Slinger и скорость от £ 13,99 / ч до 15,99 / ч (139,99-159,99 / день), чтобы попасть в «категорию начинающих слингеров» и ev Каждое сообщение, содержащее стропальщик и от 16,00 фунтов стерлингов до 18,00 фунтов стерлингов в час (160–180 фунтов стерлингов в день), попадает в «категорию квалифицированных слингеров», но НЕ вызывает слово «слингер» в одиночку (если в каком-либо другом контексте). Я надеюсь, что это поможет вам составить представление о том, чего я хочу достичь, и любая помощь будет высоко оценена. Большое спасибо, ребята, и будьте в безопасности.

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете использовать

\b(?:S/S|Slinger/Signaller|Slinger|Banksman) £(?:13\.99|1[45](?:\.\d{2})?)/H\b

Объяснение

  • \b Граница слова
  • (?:S/S|Slinger/Signaller|Slinger|Banksman) Соответствовать любой из альтернатив и пробел
  • £ Совпадение буквально
  • (?: Группа без захвата
    • 13\.99 Совпадение 13.99
    • | Или
    • 1[45](?:\.\d{2})? Совпадение 14 или 15 с необязательной десятичной частью для совпадения 2 цифр. (Если вы хотите сопоставить 1 или 2 цифры, используйте \d{1,2})
  • ) Закрыть группу
  • /H Совпадение буквально
  • \b Граница слова

Regex demo

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