【问题标题】:Regex gives different result in javascript and .NET [duplicate]正则表达式在 javascript 和 .NET 中给出不同的结果 [重复]
【发布时间】:2018-07-19 10:33:13
【问题描述】:

我需要一个匹配模式name1\name2 的正则表达式,其限制是name1 不得包含一些特殊字符,例如<>name1name2 可以有空格。

我正在使用这个正则表达式,它似乎在 java 脚本中运行良好:

/^[^ &<>;]+\\./

在我的 C 语言代码中,我使用下面的正则表达式:

var pattern= @"^[^ &<>;]+\\.";

输入 C 的尖锐结果失败:8 [ } \ ;
它传递给javascript的地方。 我怎样才能得到类似的结果?

【问题讨论】:

  • 模式是等价的。它们在 JS 和 .NET 中的工作方式相同。也就是说,同样错误。或者,您提供了不正确的要求。请澄清。
  • @ 装饰器意味着 C# 正则表达式包含两个字符 \\ ,其中只有 \ 。
  • @AlexK。双反斜杠匹配字符串中的单个反斜杠,这不是问题。 @"\\" = /\\/.
  • @AlexK。您的评论有误,请删除。 @"\." 匹配一个点,而@"\\." 匹配一个\ 和任何字符。 JS 模式匹配相同:/\\./ 匹配 \ 后跟任何字符。

标签: javascript c# regex


【解决方案1】:

您给出的示例存在问题,您从允许的字符列表中省略了空格。对于您的示例,此模式有效:

var pattern = @"^[^&<>;]+\\.";

【讨论】:

  • 谢谢!没注意到空间。
猜你喜欢
  • 1970-01-01
  • 2018-06-04
  • 2021-03-12
  • 2020-04-17
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多