Tag: 模式匹配

在包含数字的字符串中查找未知重复模式

我一直在努力解决这个问题。 我有这样的字符串: 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 ….. 我需要找到的: 1 1 0 例2: 1 1 2 0 2 2 1 0 1 1 2 0 2 2 1 0 1 1 2 0 2 2 […]

C#7使用空检查切换案例

C#7引入了一个名为patterns的新function,您可以将其与Is-Expression或Switch案例一起使用,如下所示: string str = null; switch(str){ case string x: Console.WriteLine(“string ” + x); break; default: Console.WriteLine(“default”); break; } 并且你会期望它会进入#1的情况,因为它是相同的类型,但它没有。

在C#中实现模式匹配

在Scala中,您可以使用模式匹配来生成结果,具体取决于输入的类型。 例如: val title = content match { case blogPost: BlogPost => blogPost.blog.title + “: ” + blogPost.title case blog: Blog => blog.title } 在C#中,我最好能够写: var title = Visit(content, (BlogPost blogPost) => blogPost.Blog.Title + “: ” + blogPost.Title, (Blog blog) => blog.Title ); 这可能吗? 当我尝试将其作为单一方法编写时,我不知道如何指定generics。 以下实现似乎是正确的,除了让类型检查器允许接受T的子类型的函数: public TResult Visit(T value, params Func[] visitors) { foreach […]

如何在正则表达式中替换用户输入?

我将使用简单的代码来描述我的情况。 例如,以下是代码: using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = @”\b(?!non)\w+\b”; string input = “Nonsense is not always non-functional.”; foreach (Match match in Regex.Matches(input, pattern, RegexOptions.IgnoreCase)) Console.WriteLine(match.Value); } } 现在,我想用用户输入替换“non”。 假设它被称为“UserInput”,并且代码被完美地写入以获得用户输入。 我想这样做,但错误存在: string pattern = @”\b(?!{0})\w+\b”, UserInput; 有没有办法用用户输入替换正则表达式模式中的“非”?

找到一个匹配’a’的模式,忽略’a’位于’b’和’c’之内

需要复合表达式 ” from” such that ” from” is not within parenthesis (忽略括号中的那些)这里a=” from”; b=”(“; and c=”)”; a=” from”; b=”(“; and c=”)”; 我能写的最接近(但无效)的模式是 string pat = @”^((?!\(.* from.*\)).)* from((?!\(.* from.*\)).)*$”; 我的表达式否认括号中是否有“from”但我想严格忽略这样的“来自” 匹配应该在: 1: ” from” 2:select field1 from t1 (select field1 from t1) —- 1 time in both 3: select field1 from t1 (select field1 from […]

“foo is null”和“foo == null”之间的区别是什么?

之间有什么区别: foo is null而foo == null ?

如何识别拼写不同的相似单词

我想从数据库中筛选出重复的客户名称。 单个客户可能有多个具有相同名称的系统条目,但拼写上的差异很小。 所以这是一个例子:一个名为Brook的客户可能有三个条目进入系统: 布鲁克伯塔 布鲁克伯塔 Biruk Berta 我们假设我们将此名称放在一个数据库列中。 我想知道识别此类重复的不同机制,例如100,000条记录。 我们可以在C#中使用正则表达式来迭代所有记录或其他一些模式匹配技术,或者我们可以将这些记录导出到最适合此类查询的内容(具有正则表达式function的SQL))。 这就是我认为的解决方案 编写C#代码来遍历每条记录 只按顺序获取辅音字母(在上述情况下:BrKBrt) 从其他记录中搜索相同的辅音模式,考虑类似的声音字母,如(C,K)(C,S),(F,PH) 所以请转发任何想法。