我需要将 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/