正規表現の共通規則のまとめ


文書ディレクトリ
  • 1. 特殊文字
  • 2. 1文字のみ一致
  • 3. 修飾子-前のサブ式をx回
  • 繰り返します.
  • 4. 一般的な正規表現
  • 5. 構文
  • 5.1 C#
  • 5.2 PowerShell
  • 6. 小練習To do
  • 7. 参照
  • 通常の文字のルールが具体的で厳格であり,特殊な文字を含むルールがより柔軟であるため,正規表現が導入された.
    特殊文字の意味を失うにはどうすればいいですか?
  • 反スラッシュ(特殊な記号が特殊な機能から逃れるようにEscape記号):たとえば反スラッシュに一致するには\
  • と入力します.
  • Python文字列の前に接頭辞'r'を付けて反スラッシュを取り除く遷移機構(r""生文字'vs""は改行文字を含む単文字を表す)
  • .
  • C#加@
  • 1.特殊文字
    特殊文字
    意味
    コメント
    ^
    一致文字列の開始位置
    角カッコ式で使用する場合は、その角カッコ式の文字セットが受け入れられないことを示します.
    $
    一致する文字列の末尾
    ()
    サブエクスプレッションの開始位置と終了位置
    []
    []で列挙された文字に一致
    集合文字[a-z]は任意の小文字に一致します.特殊文字は集合内部でその特殊な意味を失う.[^5]は、'5'以外の任意の文字に一致します.
    |
    A|B-マッチングAまたはB
    2.一致する文字のみ
    特殊文字
    意味
    コメント
    .
    改行以外の任意の文字を一致させる
    \d
    一致する数字、すなわち0-9
    [0-9]
    \D
    数以外の文字を一致させる
    [^0-9]
    \s
    任意の空白文字を一致させる(スペース、Tabキー...)
    折り返しt Tabf改ページvタブ
    \S
    空白以外の一致
    \w
    非特殊文字、すなわちa-z、A-Z、0-9、および_を一致させる
    [a-zA-Z0-9_]
    \W
    特殊文字、すなわちa-z、A-Z、0-9、および_を一致させる
    [^a-zA-Z0-9_]
    3.修飾子-前のサブ式をx回繰り返す
    特殊文字
    意味
    コメント
    *
    前のサブエクスプレッションを0回または複数回繰り返します.
    に等しい
    +
    前のサブエクスプレッションを1回または複数回繰り返します.
    ルール「ab+」では、「ab」、「ab、bb」が一致し、「a」は一致しません.に等しい
    ?
    前のサブエクスプレッションを0回または1回繰り返します.
    ルール「ab?」「a」と「ab」のみが一致し、{0,1}に等しい.
    {m}
    前のサブ式に対してちょうどm回繰り返します
    ルール「a{4}「表示」aaaa
    {m,n}
    前のサブ式をm~n回繰り返す
    mを省略すると0を下限とし、nを省略して無限上限を指定する
    *,+と?限定子は貪欲なマッチングで、できるだけ多くのテキストにマッチします.欲張りでないか最小の方法でマッチングしたい場合は、限定子の後に?:*?、+?と??例1:ルール「a*?」これは*に関するルールで、についてではありませんか?のルールで、後者は前者にサービスするだけです.例2:ルール「a{3,5}「マッチングする」aaa,「a{3,5}?」aaaaa
    4.一般的な正規表現
    要求
    ルール#ルール#
    正の整数
    [1-9][0-9]*
    1~99の正の整数
    [1-9][0-9]?
    5.文法
    5.1 C#
    1)検索照合-Match(String,String)
    Match match = Regex.Match(str, pattern, RegexOptions.IgnoreCase);
    MatchCollection matches = Regex.Matches(str, pattern);
    

    matchは最初のマッチング-matchを取得します.Value matchesはすべての一致-matches[0]を取得します.Value, matches[1].Value
    2)一致するかどうかを判断する-IsMatch(String,String)
    // 1 - Use IsMatch
    Regex REGEX = new Regex(@"balaba (?\d+) balaba");
    if(REGEX .IsMatch(str))    {}
    
    // 2 - Use match.Success
    Match match = Regex.Match(str);
    if (match.Success)
    {
        value = match.Groups["key"].Value;
    }
    

    3)置換-Replace(String,String)
    Regex REGEX = new Regex("pattern");
    string result = REGEX.Replace(str, "replacement");
    

    4)patternを事前にコンパイルし、Groupはマッチング項目を抽出する
    Regex REGEX = new Regex(@"balaba (?\d+) balaba");
    MatchCollection matches = REGEX.Matches(str);
    if (matches.Count == 1)
    {
        value = matches[0].Groups["key"].Value;
    }
    

    5.2 PowerShell
    参考:PowerShell正規表現1)検索マッチング-match
    "balabala" -match $pattern
    

    2)一致するか否かの判断
    if ("balabala" -match $pattern)
    

    3)置換-replace
    "str" -replace "pattern", "replacement"
    

    4)照合項目の抽出
    $pattern = "balaba (?\d+) balaba"
    if ("balabala" -match $pattern)
    {
        $matches[0]    #            
        $matches.key;
    }
    

    6.小練習To do
    Pattern
    Explain
    “^Change (?\d+) created.*”
    “(?[0-9a-f]{40})”
    “^\s*((?.+?))”
    “^[A-Za-z0-9-]+$”
    “Merged PR (?[0-9]+)”
    “tree\s+(?[0-9a-z]+)”
    “\d+\s+blob\s+(?[0-9a-z]+)\s+”
    “[^a-zA-Z0-9_]+”
    “^[[^]]+]\.+$”
    7.参考
  • 正規表現構文
  • python正規表現
  • を詳しく述べる