c# - preg_match 到 .NET 等价物

标签 c# php .net regex

我在 PHP 中有以下代码:

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

我假设 if 的谓词语句为字符串 js/core.js 返回 true .

我将如何将其翻译成 C#?哑译如下:
if(Regex.IsMatch(script,"@^[a-z0-9/._-]+$@i")
   && !Regex.IsMatch(script,"@([.][.])|([.]/)|(//)@"))

但我怀疑 @符号具有与之相关的含义,我无法深入了解。转换为 .NET regex 会很好,但我完全熟悉 .NET regex,因此对相关语法差异的解释就足够了。

非常感谢。

最佳答案

@ s 只是分隔符。在 .NET 中不需要它们

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

关于c# - preg_match 到 .NET 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3363667/

相关文章:

php - 通过 PHP 中的父类别从子类别中获取产品详细信息

网站管理员工具中的php seo 404错误

php - 如何在 PHP 中复制 cURL 和 python 的 'requests' 库?

c# - 无法从 'string' 转换为 'System.Net.Http.HttpRequestMessage'

c# - IEditableObject 和 IRevertibleChangeTracking 有什么区别?

c# - C#中支持两个相邻字母Transposition的Levenshtein编辑距离算法

c# - 单元测试后面的 "intent"- 我应该瞄准什么?

c# - 相当于 C# 中的 C 结构

c# - 通用 orderby 子句的动态表达式

c# - 使用 Oracle.ManagedAccess 使用存储过程执行内联语句