Я хотел бы создать регулярное выражение для кода доступа, где пользователи означают их число, - это код доступа со словами и двойной двоеточием перед кодом или хэшем после слова. Поэтому я хотел бы оба быть приняты следующие:Как создать регулярное выражение с одним условием ИЛИ, которое проверяет начало и конец шаблона?
code: 1234567
123567#
Однако, как «#» и «код:» находятся на противоположных концах образца мой текущий способ сделать это повторяется все мое регулярное выражение в два раза следующим образом.
(?:(?:code|pc|#|participant)[:>]?#?(\\d{7,8}(?!\\d)))|((?<!\\d)\\d{7,8})#
Я по сути говоря префиксов слова + код доступа ИЛИ код доступа + #
Когда я хотел бы сказать префиксов слова или хэш в конце + код доступа. Возможно ли последнее?
Какая из манипуляций со строками и регулярное выражение является более эффективным и как будет факторы, такие как увеличение количества слов, которые мы ищем, влияют на эффективность? – Deco
@Deco regex отлично подходит для сложного шаблона, который вы не задали здесь. Плюс: Idk о swift, но во многих языках управление строкой выполняется быстрее, чем регулярное выражение, поскольку ваше семя растет –
Я сделаю некоторое тестирование на них обоих. Я слышал, что в большинстве случаев управление строкой выполняется быстрее, но факт, что регулярное выражение имеет все значения сразу, заставляет меня думать, что просто нужно пройти через строку, проверяющую первую букву каждой строки в отрицательном образе. Строковая манипуляция должна проходить через строку N количество раз, где N - количество значений, которые я подаю в функцию beginWith. – Deco