Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Regex返回匹配前的单词_C#_Regex - Fatal编程技术网

C# Regex返回匹配前的单词

C# Regex返回匹配前的单词,c#,regex,C#,Regex,比赛前我一直在试着提取这个词。例如,我有以下句子: 阿拉图纳是位于佐治亚州巴托县最东南部的一个城镇。 我想提取“Bartow”之前的单词 我尝试了以下正则表达式来提取该单词: \w\sCounty, 我得到的回报是“w县”,而我想要的只是巴托这个词 如蒙协助,将不胜感激。谢谢 您可以使用此正则表达式进行前瞻,以在县之前查找单词: \w+(?=\s+County) (?=\s+country)是一个正向前瞻,它断言在当前匹配之前存在一个或多个空格,后跟单词country 如果要避免前瞻,则可

比赛前我一直在试着提取这个词。例如,我有以下句子:

阿拉图纳是位于佐治亚州巴托县最东南部的一个城镇。

我想提取“Bartow”之前的单词

我尝试了以下正则表达式来提取该单词:

\w\sCounty,
我得到的回报是“w县”,而我想要的只是巴托这个词


如蒙协助,将不胜感激。谢谢

您可以使用此正则表达式进行前瞻,以在
县之前查找单词

\w+(?=\s+County)
(?=\s+country)
是一个正向前瞻,它断言在当前匹配之前存在一个或多个空格,后跟单词
country

如果要避免前瞻,则可以使用捕获组:

(\w+)\s+County

并从匹配结果中提取捕获的组#1。

您的
\w\sconty,
regex返回
w country
,因为
\w
匹配的单个字符是字母、数字或
。它与整个单词不匹配

要匹配1个或多个符号,您需要使用
+
量词,要捕获需要提取的部分,您可以依靠捕获组,
(…)

因此,只需将
\w
替换为
(\w+)
,然后在获得匹配后,访问
匹配.Groups[1]。值即可修复模式

但是,如果县名称包含非单词符号,如连字符,
\w+
将与之不匹配。在这种情况下,
\S+
匹配1个或多个非空白符号可能是更好的选择

见a:


见a。

我想你指的是“郡”之前的词,恰巧是“巴托”。
var m = Regex.Match(s, @"(\S+)\s+County");
if (m.Success) 
{
     Console.WriteLine(m.Groups[1].Value);  
}