using Xunit;
namespace Util.Tests.Helpers;
///
/// 正则操作测试
///
public class RegexTest {
///
/// 测试获取值
///
/// 输入字符串
/// 模式字符串
/// 结果模式字符串
/// 结果
[Theory]
[InlineData( "", "", "", "" )]
[InlineData( "123", "a", "", "" )]
[InlineData( "123", @"\d", "", "1" )]
[InlineData( "123abc456", @"\d+([a-z]+\d+)", "$1", "abc456" )]
[InlineData( "123abc456", @"\d+([a-z]\d+)", "$1", "" )]
public void TestGetValue( string input, string pattern,string resultPattern, string result ) {
Assert.Equal( result, Util.Helpers.Regex.GetValue( input, pattern, resultPattern ) );
}
///
/// 测试获取值集合
///
[Fact]
public void TestGetValues() {
Assert.Empty( Util.Helpers.Regex.GetValues( "", "",null ) );
Assert.Empty( Util.Helpers.Regex.GetValues( "123abc456", @"\d{5}",new []{"$1"} ) );
Assert.Equal( "123", Util.Helpers.Regex.GetValues( "123abc456", @"(\d*)", new[] { "$1" } )["$1"] );
Assert.Equal( "abc", Util.Helpers.Regex.GetValues( "123abc456", @"\d*([a-z]*)\d*", new[] { "$1" } )["$1"] );
Assert.Equal( "123", Util.Helpers.Regex.GetValues( "123abc456", @"(\d*)([a-z]*)(\d*)", new[] { "$1", "$2", "$3" } )["$1"] );
Assert.Equal( "abc", Util.Helpers.Regex.GetValues( "123abc456", @"(\d*)([a-z]*)(\d*)", new[] { "$1", "$2", "$3" } )["$2"] );
Assert.Equal( "456", Util.Helpers.Regex.GetValues( "123abc456", @"(\d*)([a-z]*)(\d*)", new[] { "$1", "$2", "$3" } )["$3"] );
}
}