.NET 等价于 Perl 正则表达式

标签 .net regex perl

我需要将 Perl 脚本转换为 VB.NET。我几乎完成了整个转换,但是一些 Perl(看似简单)的正则表达式却让人头疼。以下 Perl 正则表达式的 .NET 等价物是什么?

1)

    $letter =~ s/Users //,;
    $letter =~ s/Mailboxes //,;
    if($letter =~ m/$first_char/i){

2)

    unless($storegroup =~ /Recovery/ || $storegroup =~ /Users U V W X Y Z/ || $storegroup =~ /Users S T/
        || $storegroup =~ /Users Q R/){

正则表达式对我来说看起来很简单。我尝试浏览 perl.org,但理解一种语言的正则表达式需要一些时间。

最佳答案

在 Perl 中,您可以将斜杠视为类似于双引号的东西,并附加了“在这些斜杠之间是一个正则表达式字符串”的含义。第一个代码块是 Perl 查找/替换正则表达式:

$stringvar =~ s/findregex/replaceregex/;

需要findregex并将其替换为 replaceregex , 到位。给定的示例是一个非常简单的搜索,而 .NET Regex 类将是多余的。 String.Replace()方法将完成这项工作:
letter = letter.Replace("Users ", "")
letter = letter.Replace("Mailboxes ", "")

第二部分是仅用于查找的 Perl。它返回 true如果找到 findregex 字符串并保持实际字符串本身不变。
$stringvar =~ /findregex/;
String.Contains()可以在.NET中处理这个:
if (!(storegroup.Contains("Recovery") _
   or storegroup.Contains("Users U V W X Y Z") _
   or storegroup.Contains("you get the idea"))) Then
    ...

关于.NET 等价于 Perl 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2863479/

相关文章:

c# - 使用 Aspose.cell 或 Aspose.Excel 插入分页符

c# - 如何从序列中间切掉一些元素?

python - 如何使用python中的正则表达式匹配两个单词之间的所有字符(包括新行)?

python - 如何在python中使用正则表达式检索数据?

perl - 如果 Moose 中未提供必需的属性,如何获得更好的错误消息?

c# - AvalonDock - 如何禁止拉出窗口的 float 元素

c# - 替换字符串中的 Unicode 转义序列

regex - 发送到特定域的电子邮件的 HTML 模式

perl - 在 Solaris 9 上 sleep 时的 SIGALRM

Perl https 代理问题