我创建了一个小代码来搜索正则表达式字符串并将其替换为其他内容,然后创建一个包含所做更改的新输出文件。该代码似乎适用于较小的文件,但对于100MB或更大的文件,我给出了System.OutOfMemoryException'错误。这是我的代码:stringfoldername=Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),String.Format("FIXED_{0}.tmx",Path.GetFileNameWithoutExtension(textBox1.Text)));stri
有没有办法在C#4.0中使用匹配中包含的文本的函数进行正则表达式替换?在php中有这样的东西:reg_replace('helloworldyay','(?=')\s(?=')',randomfunction('$0'));它为每个匹配项提供独立的结果,并在找到每个匹配项的地方替换它。 最佳答案 参见Regex.Replace具有MatchEvaluator重载的方法。MatchEvaluator是一种您可以指定的方法,用于处理每个单独的匹配项并返回应用作该匹配项的替换文本的内容。例如,这个...Thecatjumpedoverth
我想要一个单一的正则表达式,当应用于:“firstsecondthird”将匹配“firstthird”(在单个组中,即在C#中Match.Value将等于“firstthird”)。这可能吗?我们可以忽略后缀或前缀,但中间? 最佳答案 匹配以“first”开头,具有零个或多个其他字符,然后以“third”结尾的字符串。是这个意思吗?"^first(.*)third$"或者,您的意思是,如果您找到一个字符串“firstsecondthird”,则将除“first”和“third”之外的所有内容都丢弃?replace("^(first
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Acomprehensiveregexforphonenumbervalidation我有一个未格式化的电话号码(保证为10位数字)和一个未格式化的分机号(可以为空、空白或任意数量的号码)。我需要将它们组合成一个“友好”的字符串。我想我会连接它们,然后使用Regex.Replace格式化连接。这是我在插入一个正则表达式之前用来尝试各种正则表达式的单元测试:[Test,Ignore("Sandbox,doesnottestproductioncode")]publicvoidTestPhoneRegex(){s
我正在使用以下正则表达式JOINTS.*\s*(?:(\d*\s*\S*\s*\S*\s*\S*)\r\n\s*)*关于以下类型的数据:JOINTSDISPL.-XDISPL.-YROTATION10.000000E+000.975415E+010.616921E+0120.000000E+000.000000E+000.000000E+00思路是提取两组,每组包含一行(以JointNumber开头,1、2等)C#代码如下:stringjointPattern=@"JOINTS.*\s*(?:(\d*\s*\S*\s*\S*\s*\S*)\r\n\s*)*";MatchCollecti
只允许字母的正常正则表达式是"[a-zA-Z]"但我来自瑞典,所以我必须将其更改为"[a-zåäöA-ZÅÄÖ]”。但是假设我不知道字母表中使用了哪些字母。有没有一种方法可以自动知道哪些字符在给定的语言环境/语言中是有效的,或者我应该只列出一个我(认为我)知道我不需要的字符的黑名单? 最佳答案 您可以使用\pL来匹配任何“字母”,这将支持所有语言的所有字母。您可以使用“命名block”将其缩小到特定语言。更多信息可以在CharacterClasses上找到MSDN上的文档。我的建议是将正则表达式(或至少是“字母”部分)放入本地化资源
获取字符串中第一个空格后的所有单词的语法是什么。例如,bobsnicehouse。所以结果应该是没有引号的“nicehouse”。([^\s]+)给我所有由;分隔的3个词,[\s\S]*$>未编译。 最佳答案 我真的在寻找尽可能短的代码。以下完成了工作。谢谢大家\s(.*) 关于c#-正则表达式在第一个空格后获取所有内容,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/159876
我必须解析一个文本,其中with是一个关键词,如果它没有被方括号括起来的话。我必须将关键字与匹配。此外,with的两边必须有单词边界。以下是一些with不是关键字的示例:[与][与][一些文本与一些文本][一些文字][带有一些文字]这里有一些例子,其中with是关键字与]与你好世界你好你好[世界],你好你好[世界]和你好[世界]有人帮忙吗?提前致谢。 最佳答案 您可以查找单词with并看到最靠近其左侧的括号不是左括号,并且最靠近其右侧的括号不是右括号:RegexregexObj=newRegex(@"(?环视表达式不会在换行符处停止
我已经花了一些时间,但还是得解决。我需要能够匹配字符串中带有符号的单词(如C++)的正则表达式。我用过/\bword\b/,对于“通常”的词,它工作正常。但是一旦我尝试/\bC\+\+\b/它就不起作用了。它在某些情况下与加号一起工作是错误的。我需要一个正则表达式来检测输入字符串中是否包含C++单词。输入类似,"c++developer""usingc++language"等等附言。使用C#、.NetRegex.Match函数。感谢您的帮助! 最佳答案 +是一个特殊字符所以你需要转义它\bC\+\+(?!\w)请注意,我们不能使用\
问题:非常非常大的文件,我需要逐行解析以从每行中获取3个值。一切正常,但解析整个文件需要很长时间。有可能在几秒钟内完成吗?通常需要1到2分钟。示例文件大小为148,208KB我正在使用正则表达式来解析每一行:这是我的C#代码:privatestaticvoidReadTheLines(intmax,Responderrp,stringinputFile){Listrate=newList();doublecounter=1;try{using(varsr=newStreamReader(inputFile,Encoding.UTF8,true,1024)){stringline;Con