facebook twitter hatena line email

「Unity/Csharp/正規表現」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(正規表現マッチ)
(¥wを使用)
 
(同じ利用者による、間の5版が非表示)
行1: 行1:
  
==正規表現マッチ==
+
==準備==
 
  using System.Text.RegularExpressions;
 
  using System.Text.RegularExpressions;
 +
 +
==正規表現マッチ==
 
  string str = "hoge a456 piyo";
 
  string str = "hoge a456 piyo";
 
  Match match = Regex.Match(str, "a[0-9]+");
 
  Match match = Regex.Match(str, "a[0-9]+");
行33: 行35:
 
</pre>
 
</pre>
 
参考:http://increment.hatenablog.com/entry/2015/08/21/060626
 
参考:http://increment.hatenablog.com/entry/2015/08/21/060626
 +
 +
==エスケープ文字==
 +
\\を使ってエスケープする
 +
<pre>
 +
Match match = Regex.Match(endpoint, "/controller1/action2/\\?id=[\\w]*\\&age=[\\d]*");
 +
</pre>
 +
 +
==¥wを使用==
 +
¥wは、[a-zA-Z_0-9]と同等
 +
<pre>
 +
// Match match = Regex.Match(str, "^Play([a-zA-Z_0-9]*)Scene$");
 +
Match match = Regex.Match(str, "^Play([¥w]*)Scene$");
 +
</pre>
 +
 +
公式:https://learn.microsoft.com/ja-jp/dotnet/api/system.text.regularexpressions.regex.match?view=net-8.0

2024年6月17日 (月) 07:33時点における最新版

準備

using System.Text.RegularExpressions;

正規表現マッチ

string str = "hoge a456 piyo";
Match match = Regex.Match(str, "a[0-9]+");
if (match.Success) {
    Debug.Log(match.Value); // a456
}

正規表現カッコマッチ

Match match = Regex.Match("hoge10-5", "^hoge([0-9]*)-([0-9]*)");
Debug.Log(match.Value); // hoge10
Debug.Log(match.Groups[1].Value); // 10
Debug.Log(match.Groups[2].Value); // 5

a-z判定

if (StrUtil.IsAlphabet(name)) {
}
public class StrUtil
{
    // アルファベットのみ
    public static bool IsAlphabet(string name)
    {
        return !Regex.IsMatch(name, @"[^a-zA-Z]");
    }
    // 数字のみ
    public static bool IsNum(string name)
    {
        return !Regex.IsMatch(name, @"[^0-9]");
    }
}

参考:http://increment.hatenablog.com/entry/2015/08/21/060626

エスケープ文字

\\を使ってエスケープする

Match match = Regex.Match(endpoint, "/controller1/action2/\\?id=[\\w]*\\&age=[\\d]*");

¥wを使用

¥wは、[a-zA-Z_0-9]と同等

// Match match = Regex.Match(str, "^Play([a-zA-Z_0-9]*)Scene$");
Match match = Regex.Match(str, "^Play([¥w]*)Scene$");

公式:https://learn.microsoft.com/ja-jp/dotnet/api/system.text.regularexpressions.regex.match?view=net-8.0