首先該方法屬于C#,是C#提供的,不是unity提供的,但我使用這個是在unity中使用的,故此我將其歸入unity筆記。
該方式可用于注冊、登錄等等需要用戶輸入的場景,用以判斷字符串是否滿足正則表達式的要求
首先介紹該API
//引入命名空間
using System.Text.RegularExpressions;
//如下API
public bool IsMatch(string input);
public bool IsMatch(string input, int startat);
public static bool IsMatch(string input, string pattern);
public static bool IsMatch(string input, string pattern, RegexOptions options);
public static bool IsMatch(string input, string pattern, RegexOptions options, TimeSpan matchTimeout);
這里開始介紹,大家可以看看官方的文檔Regex.IsMatch 方法 (System.Text.RegularExpressions) | Microsoft Learn
以下是我的個人理解
首先是非靜態(tài)的方法,需要配合Regex變量一起使用
//非靜態(tài)
/*1*/
public bool IsMatch(string input);
/*
input是否滿足自定義的Regex變量的正則表達式
滿足返回true,否則false
*/
//使用
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
//需要檢測的字符串
string[] partNumbers= {
"1298-673-4192",
"A08Z-931-468A",
"_A90-123-129X",
"12345-KKA-1230",
"0919-2893-1256"
};
//自定義的Regex檢測規(guī)則
Regex rgx = new Regex(@"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$");
foreach (string partNumber in partNumbers)
Console.WriteLine("{0} {1} a valid part number.",
partNumber,
rgx.IsMatch(partNumber) ? "is" : "is not");
}
}
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468A is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
/*1*/
public bool IsMatch(string input, int startat);
/*
從input的startat位置開始檢測其是否滿足自定義的Regex變量的正則表達式
滿足返回true,否則false
startat取值0-最大長度
*/
//使用
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string[] partNumbers= { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A",
"_A90-123-129X", "123K-000-1230",
"SKU: 0919-2893-1256" };
Regex rgx = new Regex(@"[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$");
foreach (string partNumber in partNumbers)
{
//獲取字符':'出現(xiàn)在字符串中的第一個位置
int start = partNumber.IndexOf(':');
if (start >= 0)
{
Console.WriteLine("{0} {1} a valid part number.",
partNumber,
rgx.IsMatch(partNumber, start) ? "is" : "is not");
}
else
{
Console.WriteLine("Cannot find starting position in {0}.", partNumber);
}
}
}
}
// The example displays the following output:
// Part Number: 1298-673-4192 is a valid part number.
// Part No: A08Z-931-468A is a valid part number.
// Cannot find starting position in _A90-123-129X.
// Cannot find starting position in 123K-000-1230.
// SKU: 0919-2893-1256 is not a valid part number.
靜態(tài)的方法
//靜態(tài)方法
public static bool IsMatch(string input, string pattern);
/*
input是否滿足正則表達式pattern
滿足返回true,否則false
*/
//使用
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string[] partNumbers= { "1298-673-4192", "A08Z-931-468A",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" };
//正則表達式,特別注意@不能掉且要在""外面
/*@ 是C# 中的字符串字面量轉(zhuǎn)義符
@ 用于將字符串字面量中的[和]轉(zhuǎn)義為它們的字符值
這樣[a-zA-Z0-9]就變成了一個有效的正則表達式碼。
*/
string pattern = @"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$";
foreach (string partNumber in partNumbers)
Console.WriteLine("{0} {1} a valid part number.",
partNumber,
Regex.IsMatch(partNumber, pattern) ? "is" : "is not");
}
}
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468A is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
public static bool IsMatch(string input, string pattern, RegexOptions options);
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string[] partNumbers= { "1298-673-4192", "A08Z-931-468a",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" };
string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
foreach (string partNumber in partNumbers)
Console.WriteLine("{0} {1} a valid part number.",
partNumber,
Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase)
? "is" : "is not");
}
}
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468a is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
public static bool IsMatch(string input, string pattern, RegexOptions options, TimeSpan matchTimeout);
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string[] partNumbers= { "1298-673-4192", "A08Z-931-468a",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" };
string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
foreach (string partNumber in partNumbers)
try {
Console.WriteLine("{0} {1} a valid part number.",
partNumber,
Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase)
? "is" : "is not", TimeSpan.FromMilliseconds(500));
}
catch (RegexMatchTimeoutException e) {
Console.WriteLine("Timeout after {0} seconds matching {1}.",
e.MatchTimeout, e.Input);
}
}
}
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468a is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
正則表達式的選項 - .NET | Microsoft Learnhttps://learn.microsoft.com/zh-cn/dotnet/standard/base-types/regular-expression-options
TimeSpan 結(jié)構(gòu) (System) | Microsoft Learnhttps://learn.microsoft.com/zh-cn/dotnet/api/system.timespan?view=net-8.0文章來源:http://www.zghlxwxcb.cn/news/detail-792617.html
C# 正則表達式 | 菜鳥教程 (runoob.com)https://www.runoob.com/csharp/csharp-regular-expressions.html上面是一些網(wǎng)站,詳細介紹了一些細節(jié),我在這不過多贅述。文章來源地址http://www.zghlxwxcb.cn/news/detail-792617.html
到了這里,關(guān)于Unity利用正則表達式判斷字符串是否滿足要求的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!