草庐IT

c# - 解析格式化字符串

我正在尝试创建一个通用的格式化程序/解析器组合。示例场景:我有一个用于string.Format()的字符串,例如varformat="{0}-{1}"我有一个对象数组(字符串)作为输入,例如vararr=new[]{“asdf”,“qwer”}我正在使用格式字符串格式化数组,例如varres=string.Format(format,arr)我想做的是将格式化的字符串还原回对象数组(字符串)。类似于(伪代码):vararr2=string.Unformat(format,res)//when:res="asdf-qwer"//arr2shouldbeequaltoarr有人有过这样的

C#如何Regex.Replace "\r\n"(实际字符,不是换行符)

我正在使用几个c#正则表达式清理一些可怕的文本。一个让我难过的问题是文本中有许多'\r\n'字符串,实际字符不是换行符。我试过:content=Regex.Replace(content,"\\r\\n","");和:content=Regex.Replace(content,"\r\n","");但它们都不起作用。最后我不得不使用:content=content.Replace("\\r\\n","\r\n");为了完成项目,但无法在正则表达式中完成它让我很烦。 最佳答案 \r和\n在Regex中也有特殊含义,因此需要对反斜杠进行

c# - 如何将逗号分隔的电子邮件列表与正则表达式匹配?

尝试使用asp:RegularExpressionValidator验证文本框中的逗号分隔的电子邮件列表,如下所示:当我在http://regexhero.net/tester/测试它时它工作得很好,但它在我的页面上不起作用。这是我的示例输入:test@test.com,test1@test.com我尝试了thispost中的建议,但无法让它工作。附注我不想讨论正确的电子邮件验证 最佳答案 此正则表达式将允许电子邮件在逗号后带有空格。^[\W]*([\w+\-.%]+@[\w\-.]+\.[A-Za-z]{2,4}[\W]*,{1}

c# - 如何获取嵌套括号之间的文本?

用于在括号()之间获取文本的正则表达式,我已经尝试过了,但我没有获得正则表达式。对于这个例子Regex.Match(script,@"\((.*?)\)").Value例子:-add(mul(a,add(b,c)),d)+e-sub(f,g)Output=>1)mul(a,add(b,c)),d2)f,g 最佳答案 .NET允许正则表达式中的递归。参见BalancingGroupDefinitionsvarinput=@"add(mul(a,add(b,c)),d)+e-sub(f,g)";varregex=newRegex(@"\

c# - 在 C# 中使用 Selenium 通过部分 id 查找元素

我正在尝试定位具有动态生成的ID的元素。字符串的最后一部分是常量(“ReportViewer_fixedTable”),因此我可以使用它来定位元素。我尝试在XPath中使用正则表达式:targetElement=driver.FindElement(By.XPath("//table[regx:match(@id,"ReportViewer_fixedTable")]"));并通过CssSelector定位:targetElement=driver.FindElement(By.CssSelector("table[id$='ReportViewer_fixedTable']"));两

c# - 正则表达式以 [ 开始并以 ] 结束

查找以[开头并以]结尾的字符串的正则表达式是什么?在[和]之间的各种字符都可以。 最佳答案 [和]是正则表达式中的特殊字符,需要对它们进行转义。这应该适合你:\[.*?\].*?对任何字符进行非贪婪匹配。非贪婪方面确保您将匹配[abc]而不是[abc]def]。如果要匹配整个字符串,请添加前导^和尾随$,例如abc[def]ghi中完全没有匹配项。 关于c#-正则表达式以[开始并以]结束,我们在StackOverflow上找到一个类似的问题: https://

c# - 如何验证(特定国家/地区)电话号码

一个有效的电话号码包含:少于9个字符以“+”开头只有数字。我正在尝试使用正则表达式,但我才刚刚开始使用它们,而且我并不擅长。到目前为止我的代码是:staticvoidMain(string[]args){Console.WriteLine("Enteraphonenumber.");stringtelNo=Console.ReadLine();if(Regex.Match(telNo,@"^(\+[0-9])$").Success)Console.WriteLine("correctlyentered");elseConsole.WriteLine("incorrectlyentere

c# - "00000000000000000000000000000"匹配正则表达式 "^[1-9]|0$"

在.Net4.5中,我发现的结果System.Text.RegularExpressions.Regex.IsMatch("00000000000000000000000000000","^[1-9]|0$")是真的。我期望的结果是错误的。我不知道为什么。你能帮帮我吗?更新:一开始,我在验证正则表达式^-?[1-9]\d*|0$,它用于匹配在互联网上找到的整数,我发现带有多个0匹配正则表达式。 最佳答案 问题是交流发电机的绑定(bind)行为。默认情况下(即不使用分组),包含交流发电机(|)的表达式将匹配交流发电机左侧的值或右侧的值

c# - 为什么这个通过 Regex 组循环打印输出两次?

我写了这个非常直接的正则表达式代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Text.RegularExpressions;usingSystem.Threading.Tasks;namespaceRegexTest1{classProgram{staticvoidMain(string[]args){stringa="\"foobar123==\"";Regexr=newRegex("^\"(.*)\"$");Matchm=r.Match(a);i

c# - 我可以使用正则表达式查找 X 的索引吗?

我有一个很大的字符串,想找到第一个出现的X,X是“numberXnumber”……3X3,或者4X9……我如何在C#中执行此操作? 最佳答案 vars="longstring.....24X10.....1X3";varmatch=Regex.Match(s,@"\d+X\d+");if(match.Success){Console.WriteLine(match.Index);//16Console.WriteLine(match.Value);//24X10;}另请查看NextMatch,这是一个方便的函数match=match