Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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# C中文件名的正则表达式#_C#_Regex - Fatal编程技术网

C# C中文件名的正则表达式#

C# C中文件名的正则表达式#,c#,regex,C#,Regex,我试图找到一个正则表达式来解析项目中.resx文件名的两个部分。有一个名为“UiText.resx”的主文件,然后是许多约定为“UiText.ja JP.resx”的translation.resx文件。我需要后一个字符串中的“UiText”和“ja-JP”,因为我们有其他不必用于UiText的resx文件(例如,我有一些名为“ExceptionText.resx”的文件) 我现在使用的模式(这很有效,只需要一点额外的编码)是”(?如果我正确理解您的需求,那么您需要“UiText”的主要原因不是

我试图找到一个正则表达式来解析项目中.resx文件名的两个部分。有一个名为“UiText.resx”的主文件,然后是许多约定为“UiText.ja JP.resx”的translation.resx文件。我需要后一个字符串中的“UiText”和“ja-JP”,因为我们有其他不必用于UiText的resx文件(例如,我有一些名为“ExceptionText.resx”的文件)


我现在使用的模式(这很有效,只需要一点额外的编码)是
”(?如果我正确理解您的需求,那么您需要“UiText”的主要原因不是因为您对术语本身有任何价值,而是因为您需要过滤您的文件。您需要使用的真正术语是“ja JP”,它会根据您需要的文件进行更改

如果我是正确的,请尝试以下正则表达式:

(?<=UiText\.).+(?=\.resx)

(?由于
UiText
似乎是常量,因此您可以使用此正则表达式将
js-JP
提取为$1:

^UiText\.(.+?)\.resx$

对于您想要的文件,您的约定有哪些变化?尤其是,所有文件都以“UiText”作为前缀,或者是其一些变体?正如前面所述,在我看来,“UiText”似乎是“更多的是一个过滤器来挑选你需要的文件,而不是你真正需要提取的文件。这是正确的吗?那么,我是否理解你想要解析的文件名属于
.resx
模式?然后使用
var ms=Regex.Matches(s,@“^([^.]+)\([^.]+)\.resx$”).Cast();var TextType=ms.Select(x=>x.Groups[1].Value)。ToList();var LangCode=ms.Select(x=>x.Groups[2].Value).ToList();
如果您有一个文件名,请使用此
^(?([^.]*)\)+resx(?!\S)
,使用组1的捕获集合获取所有部件,直到
.resx
。不管有多少部件。
^UiText\.(.+?)\.resx$