正規表現の共通規則のまとめ
3621 ワード
文書ディレクトリ 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を取得します.Value matchesはすべての一致-matches[0]を取得します.Value, matches[1].Value
2)一致するかどうかを判断する-IsMatch(String,String)
3)置換-Replace(String,String)
4)patternを事前にコンパイルし、Groupはマッチング項目を抽出する
5.2 PowerShell
参考:PowerShell正規表現1)検索マッチング-match
2)一致するか否かの判断
3)置換-replace
4)照合項目の抽出
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正規表現 を詳しく述べる
特殊文字の意味を失うにはどうすればいいですか?
特殊文字
意味
コメント
^
一致文字列の開始位置
角カッコ式で使用する場合は、その角カッコ式の文字セットが受け入れられないことを示します.
$
一致する文字列の末尾
()
サブエクスプレッションの開始位置と終了位置
[]
[]で列挙された文字に一致
集合文字[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.参考