C# 使用正则表达式提取字符串的一部分
我有一系列的字符串,我需要提取其中的一部分。我想用正则表达式来实现这一点。这些字符串都具有以下一般形式: content/landdata/files/Albuquerque_123.zip content/landdata/files/Albuquerque_123.zip 除城市名称外,大多数字符串都是静态的。它可以是任何城市的名字 我已经做到了这一点: (?!content/landdata/files/)(?:[A-Za-z_-])*[_][0-9]{1,}(?!\\.zip) (?!content/landdata/files/)(?:[A-Za-z\-])*[\][0-9]{1,}(?!\.zip)C# 使用正则表达式提取字符串的一部分,c#,regex,C#,Regex,我有一系列的字符串,我需要提取其中的一部分。我想用正则表达式来实现这一点。这些字符串都具有以下一般形式: content/landdata/files/Albuquerque_123.zip content/landdata/files/Albuquerque_123.zip 除城市名称外,大多数字符串都是静态的。它可以是任何城市的名字 我已经做到了这一点: (?!content/landdata/files/)(?:[A-Za-z_-])*[_][0-9]{1,}(?!\\.zip) (?!c
这将给我
Albuquerque_123
,但我很难摆脱_123
关于“摆脱_123”你能给我一点更多的上下文吗
我对您要求的内容的理解如下:您实际上只是试图从正则表达式的字符串中删除_123,使其成为/content/landdata/files/[City Name]
因此,如果是这种情况,则对_123执行替换
public class Example
{
public static void Main()
{
string pattern = "_123";
string output = Regex.Replace(input, pattern, "");
Console.WriteLine("Output: " + result);
}
}
我没有真正测试上面的代码,可能有问题。也许还有更好的方法可以做到这一点。关于“摆脱_123”的问题,你能提供更多的上下文吗 我对您要求的内容的理解如下:您实际上只是试图从正则表达式的字符串中删除_123,使其成为/content/landdata/files/[City Name] 因此,如果是这种情况,则对_123执行替换
public class Example
{
public static void Main()
{
string pattern = "_123";
string output = Regex.Replace(input, pattern, "");
Console.WriteLine("Output: " + result);
}
}
我没有真正测试上面的代码,可能有问题。也许还有更好的方法可以做到这一点。这对我来说很有效-将城市放入捕获组(删除?:并将组中的*从你的移动)
这对我很有用-将城市放入捕获组(删除?:并将组内的*从您的组中移出) 您可以使用属性 例如:
var testString = "content/landdata/files/Albuquerque_123.zip";
var regex = new Regex(@"content/landdata/files/([A-Za-z_-]+)_[0-9]+\.zip");
Console.WriteLine(regex.Match(testString).Groups[1]);
您可以使用属性
例如:
var testString = "content/landdata/files/Albuquerque_123.zip";
var regex = new Regex(@"content/landdata/files/([A-Za-z_-]+)_[0-9]+\.zip");
Console.WriteLine(regex.Match(testString).Groups[1]);
?:
表示不捕获组,所以在您真正想要捕获的组中删除它
(?!content/landdata/files/)(?:[A-Za-z_-])*[_][0-9]{1,}(?!\\.zip)
应该是
(?!content/landdata/files/)([A-Za-z_-]*)_[0-9]+(?!\\.zip)
。。。然后您可以只查询匹配的组
属性
?:
表示不捕获组,所以将其从您实际想要捕获的组中删除
(?!content/landdata/files/)(?:[A-Za-z_-])*[_][0-9]{1,}(?!\\.zip)
应该是
(?!content/landdata/files/)([A-Za-z_-]*)_[0-9]+(?!\\.zip)
。。。然后您可以只查询匹配的组
属性
看起来你就快到了。考虑下面的正则表达式…
(?!content/landdata/files/)(?:[A-Za-z_-])+(?=[_][0-9]{1,}\.zip)
祝你好运 看来你就快到了。考虑下面的正则表达式…
(?!content/landdata/files/)(?:[A-Za-z_-])+(?=[_][0-9]{1,}\.zip)
祝你好运 是结尾总是
\u 123
,还是仅仅是某个整数?是结尾总是\u 123
,还是仅仅是某个整数?我几乎可以肯定,\u 123部分不是那样静态的。可能不是,但正如我所说,我只是在寻找更多的上下文。我几乎可以肯定,\u 123部分不是那样静态的。可能不是,但正如我所说,我只是在寻找更多的上下文。[\u]
可以是简单的
[\u]
可以是简单的