Intereting Posts
Лучший способ использования PDO в процедурной среде Как я могу использовать функцию preg_replace PHP для преобразования кодовых точек Unicode в реальные символы / объекты HTML? Доступ к методу родства Передайте пользовательское сообщение (или любые другие данные) в Laravel 404.blade.php Изменения в php не отображаются сразу при использовании MAMP в OSX и PHP версии 5.5.3 Как выбрать строки, начинающиеся с «<img» с помощью оператора IF извлечь изображение src из текста? Zend Framework 2 – Как включить частичную библиотеку php str_replace и \ b граница слова php regex: найти встроенный javascript в документе HTML Twitter, изменение защищенного статуса с помощью PHP Почему «…» объединяет два числа в моем коде? Я должен ДОЛЖЕН обновить свой PHP-SDK от 3.2 до 4.0 после 30 апреля 2015 года (истекает срок действия графика API 1.0)? могу ли я использовать PHP-SDK 3.2 с Graph API 2.0? Выполнение запроса HTTP GET с проверкой подлинности HTTP-Basic Вырезать flv-видео с помощью php

preg_match до эквивалента .NET

У меня есть следующий код в PHP:

if (preg_match('@^[a-z0-9/._-]+$@i', $script) && !preg_match('@([.][.])|([.]/)|(//)@', $script)) 

Я делаю предположение, что предикат для оператора if возвращает true для строки js/core.js

Как перевести это на C #? Тупой перевод выглядит следующим образом:

 if(Regex.IsMatch(script,"@^[a-z0-9/._-]+$@i") && !Regex.IsMatch(script,"@([.][.])|([.]/)|(//)@")) 

но я подозреваю, что символ @ имеет значение, связанное с ним, что я не могу добраться до конца. Перевод в .NET regex был бы приятным, но я полностью знаком с регулярным выражением .NET, поэтому достаточно объяснения соответствующих синтаксических различий.

Большое спасибо.

Solutions Collecting From Web of "preg_match до эквивалента .NET"

@ S – это просто разделитель. Вы не нуждаетесь в них в .NET.

 if(Regex.IsMatch(script,"^[a-z0-9/._-]+$", RegexOptions.IgnoreCase) && !Regex.IsMatch(script,"([.][.])|([.]/)|(//)")) 

Символ @ в .net является синтаксическим сахаром, который означает, что следующая строка будет литералом и находится вне кавычек. это позволяет использовать строку, в которой вам не нужно удваивать символ обратной косой черты ( \ ). Итак, "c: \\ foo \\ bar" становится @ "c: \ foo \ bar"