正则表达式在文本中查找表达式

本文关键字:查找 表达式 文本 正则表达式 | 更新日期: 2023-09-27 17:55:46

我需要一个正则表达式来避免到处都是基本的替换、循环和"if"。

我正在寻找一个全文中的表达式,可以让我得到这个结果:

'n'n'Lorem'n'n't'n'r'n'Ipsum 't't't Lorem't't'tHello Stackoverflow!
Lorem'r't'nTest lorem ipsum V++ 'n'rO+'n V2.0

我期待的结果是除了'n'r't之外的所有单词,我需要第一句话的LoremIpsumTestHello Stackoverflow,以及V++O+ V2.0

有没有比删除坏字符并通过正则表达式提取单词更好的方法?

正则表达式在文本中查找表达式

我没有看到使用正则表达式实现您真正想要的简单方法。

我会使用普通的 C# 代码:

var input = @"'n'n'Lorem'n'n't'n'r'n'Ipsum 't't't Lorem't't'tHello Stackoverflow!
Lorem'r't'nTest lorem ipsum V++ 'n'rO+'n V2.0";
var separators = new [] {"'r", "'n", "'t", "''n", "''t", "''r", "''" };
var invalidCharacters = @".,'/?:;'[]{}!@#$%^&*()".ToCharArray();
var rawWords = input.Split(separators, StringSplitOptions.RemoveEmptyEntries)
                    .Select(x => x.Trim()).Where(x => !string.IsNullOrEmpty(x));
var words = rawWords.Where(x => !invalidCharacters.Any(y => x.Contains(y)));

请注意,这会删除Hello Stackoverflow!,因为它包含以下无效字符之一:!

这是rawWords的内容:

  • 洛雷姆
  • 伊普苏姆
  • 洛雷姆
  • 你好堆栈溢出!
  • 洛雷姆
  • Test lorem ipsum V++
  • O+
  • 2.0 版

这是words的内容:

  • 洛雷姆
  • 伊普苏姆
  • 洛雷姆
  • 洛雷姆
  • Test lorem ipsum V++
  • O+

由于您的要求仍然不清楚 - 坦率地说,我认为您的示例文本包含错误 - 这是我能做的最好的事情。从这里开始,您应该使用此代码并根据需要对其进行修改,以获得实际需要的内容。

's是正则表达式中空格字符的匹配器。

从 http://www.regular-expressions.info/shorthand.html:

's代表"空格字符"。再次,这是哪些字符 实际上包括,取决于正则表达式的味道。所有口味 本教程中讨论的它包括[ 't'r'n'f] 。即:'s 匹配空格、制表符、换行符或表单馈送。

因此,您只需为's编写一个正则表达式,并将所有匹配项替换为string.empty