Tag: perl

C#正则表达式替换和*

我是一个做C#的perl程序员。 面对与零或多个断言有关的Regex.Replace的奇怪问题,*。 假设我想用一个字母替换零个或多个字母。 在perl中,我可以这样做: my $s = “A”; $s =~ s/\w*/B/; print $s; $s now = “B” 但是如果我尝试在C#中做同样的事情,就像这样: string s = Regex.Replace(“A”, @”\w*”, “B”); s now = “BB” 文档确实说“*字符在替换模式中不被识别为元字符” 为什么? 如果你想要一些你的正则表达式在一些字符串上留下可能不存在的字符串(如最后的“。*?”),是否有任何解决方法? (这是一个愚蠢的例子,但你明白了)

在平衡字符内搜索特定文本(递归

给出以下(消毒)输入: Return_t func() { Type cursorFeature(true); while (nDist derefenced, MACRO) != 0)) { bIsChanged = true; break; } memcpy(&var, &cursorFeature->dereferenced, sizeof(anotherType_t)); } } //more stuff } } 我有以下正则表达式捕获使用Type后发生的循环 Type.*\s*(\w*)[^}]*?(?:while|for)\s*\(.*?\n?.*?(\{(?>[^{}]|(?-1))*\}) https://regex101.com/r/Kr0zQq/3 我还有以下正则表达式,它捕获Type变量的特定用法: Type.*\s*(\w*)[\s\S]*?\K(?|\+\+) https://regex101.com/r/Kr0zQq/4 我的目标是以某种方式将这些结合起来,最好是组合成一个正则表达式(如果可能的话,我希望能够在VS内部进行搜索)。 鉴于递归正则表达式的性质,我不确定这是否可能……而且我怀疑它不是。 如果没有,那么在搜索数百个文件时不会失去文件名/数字上下文的聪明的东西会很棒。 我基本上需要文件名和行号。 上下文很棒,但不是必需的。 为了澄清,我想捕获cursorFeature因为它的类型为Type ,然后我想在”loop”{…..}搜索它的使用 编辑 只是关于我使用正则表达式解决这个问题的说明。 被搜索的代码超过一百万行,跨越由各种编译器编译并由多个构建系统构建的多个项目。 例如,使用宏和高级语言function意味着甚至VS Intellisense 经常错误地编写VS能够编译的代码。 和YCM(vim)一样。 因此,一个可能过于贪婪的正则表达式,即70%的误报是好的。 (由于缺少循环中变量使用的进一步发生,因为在那一点上通常很容易扫描其余部分。)然而,尝试使用“通用”PCRE作为单行进行这可能是愚蠢的。 🙂

正则表达式 – 如何在第一次出现角色时停止

我试图从标签中提取src值,到目前为止我似乎能够提取字符串中src值和最终引号之间的字符串 串: 例如在PHP中: preg_match(‘/src=\”(.*)\”/’, $row->find(‘a img’,0), $matches); if($matches){ echo $matches[0]; } 打印出 src=”http://sofzh.miximages.com/java/amazon_uk.gif” width=”89″ height=”31″ alt=”” 但我真正想要的是… src=”http://sofzh.miximages.com/java/amazon_uk.gif” 或者如果可能的话…… http://i.bookfinder.com/about/booksellers/logo_borderless/amazon_uk.gif 我该怎么加入正则表达式? 谢谢

如何在C#中使用Regex检索所选文本?

如何在C#中使用Regex检索所选文本? 我正在寻找与此Perl代码等效的C#代码: $indexVal = 0; if($string =~ /Index: (\d*)/){$indexVal = $1;}

如何在C#应用程序中调用Perl脚本?

我想捕获Perl程序的输出并在C#Windows窗体的文本框中显示输出数据(屏幕上的字符串)。 这是我的主要C#代码: public partial class frmMain : Form { private Process myProcess = null; public frmMain() { InitializeComponent(); } public delegate void UpdateUIDelegate(string data); private void btnRun_Click(object sender, EventArgs e) { myProcess = new Process(); ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(“perl.exe”); myProcessStartInfo.Arguments = “test.pl”; myProcessStartInfo.UseShellExecute = false; myProcessStartInfo.RedirectStandardOutput = true; myProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden; myProcessStartInfo.CreateNoWindow = true; […]

C#:拆分字符串并将结果分配给多个字符串变量

我有一个字符串,其中有几个字段由特定字符分隔,如下所示: A,B,C 我想在逗号中拆分字符串并将每个结果字段分配给它自己的字符串变量。 在Perl中我可以像这样优雅地做到这一点: my ($varA, $varB, $varC) = split (/,/, $string); 在C#中实现相同结果的最简单,最优雅的方法是什么? 我知道我可以分成一个数组: string[] results = string.Split(‘,’); 但后来我必须通过他们的索引访问字段,例如结果[2]。 这是难以阅读和容易出错的 – 考虑没有3个但是30个字段。 出于这个原因,我更喜欢将每个字段值放在自己的命名变量中。

如何在C#或Perl中以编程方式打开并将PowerPoint演示文稿另存为HTML / JPEG?

我正在寻找一个代码片段,它可以做到这一点,最好是在C#甚至Perl中。 我希望这不是一项大任务;)

将Perl正则表达式转换为.NET

我在Perl中有一些有用的正则表达式 。 有没有一种简单的方法将它们转换为.NET的正则表达式方言? 如果没有,是否有简明的差异参考?