在涉及Apostrophe的C#中使用此正则表达式的问题

时间:2017-07-19 08:27:50

标签: c# regex string escaping

我试图捕获.txt文档中的每个单词。

单词被定义为任何字符串的连续字符和连字符,可能有撇号(撇号和"右单引号和#34;由于输入可以使用任一字符而捕获字符) 或者,作为正则表达式:

[a-zA-Z\-]+['a-zA-Z\-\’\']*

现在这似乎适用于几个在线Regex测试网络应用程序的东西,但它似乎似乎不想在我的C#代码中工作,我不明白为什么:

MatchCollection matches = Regex.Matches(input_String.ToLowerInvariant(),
                                        @"[a-zA-Z\-]+['a-zA-Z\-\’\']*");
string[] sorting_String = matches.Cast<Match>().Select(match => match.Value).ToArray();

当像&#34;我&#39; m&#34;包含在文本中,它正在返回&#34; i&#34;和&#34; m&#34;作为单独的单词,而不是预期的单个条目&#34; i&#39; m&#34;。

这次我没有通过Google搜索找到任何内容,因为它在网上测试人员中按预期工作......我无法弄清楚它是否是一个逃避问题。我很难过。

有人可以向我解释为什么它不会返回我对C#的期望吗?或者至少,使用System.Text.RegularExpressions库?我认为这只是我愚蠢/无知。

编辑1:这是显示问题的当地人的屏幕截图 - Image of Locals 应该是#34;书&#34;。 嗯,我只是检查了我的输入字符串变量,看起来我得到这样的东西:Image of encoding issue? maybe?

Ehhhh,输入是一个.txt文件 - 它的格式保留在文件中......所以我的代码中发生了一些不好玩的事情......呃,至少那就是我现在猜测这个问题的地方......我不是这个XD的专家。很抱歉打扰了,但是我可以指出可以帮助我的资源方向吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试此PROFILE MATCH (n1:Consumer{mobileNumber: "xxx"}) MATCH (m:Consumer{mobileNumber: "yyy"}) UNWIND COLLECT(n1) AS n MATCH (n)-[r:HAS_CONTACT]->(m) RETURN n,m,r; 并查看其是否有效

我认为你应该逃避第二个支架上的第一个[\w\'\-]+[\w\'\-]*