jellyfin-plugin-metashark/Jellyfin.Plugin.MetaShark/Core/StringExtension.cs

88 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using StringMetric;
namespace Jellyfin.Plugin.MetaShark.Core
{
public static class StringExtension
{
public static long ToLong(this string s)
{
long val;
if (long.TryParse(s, out val))
{
return val;
}
return 0;
}
public static int ToInt(this string s)
{
int val;
if (int.TryParse(s, out val))
{
return val;
}
return 0;
}
public static float ToFloat(this string s)
{
float val;
if (float.TryParse(s, out val))
{
return val;
}
return 0.0f;
}
public static bool IsChinese(this string s)
{
Regex chineseReg = new Regex(@"[\u4e00-\u9fa5]{1,}", RegexOptions.Compiled);
return chineseReg.IsMatch(s.Replace(" ", string.Empty).Trim());
}
public static bool HasChinese(this string s)
{
Regex chineseReg = new Regex(@"[\u4e00-\u9fa5]", RegexOptions.Compiled);
return chineseReg.Match(s).Success;
}
public static bool IsSameLanguage(this string s1, string s2)
{
return s1.IsChinese() == s2.IsChinese();
}
public static double Distance(this string s1, string s2)
{
var jw = new JaroWinkler();
return jw.Similarity(s1, s2);
}
public static string GetMatchGroup(this string text, Regex reg)
{
var match = reg.Match(text);
if (match.Success && match.Groups.Count > 1)
{
return match.Groups[1].Value.Trim();
}
return string.Empty;
}
public static bool IsNumericString(this string str)
{
return str.All(char.IsDigit);
}
}
}