C#でワイルドカードを使った文字列の一致(マッチング)を行う方法
文字列の一致検索でよく使われるワイルドカード文字がアスタリスク(*)です。これは、文字列の中にある0個以上の任意の文字を表します。
C#では、System.Text.RegularExpressions名前空間のRegexクラスを使用することで、このようなワイルドカード的なパターンマッチングを実現できます。
次の例では、正規表現パターン「\bt\S*s\b」を使って、「t」で始まり「s」で終わる単語をすべて抽出します。
パターンの構成要素
\b:単語の境界(先頭・末尾を示す)t:先頭の文字「t」\S*:空白以外の0個以上の連続した文字(ワイルドカードに相当)s:末尾の文字「s」
コード例
using System;
using System.Text.RegularExpressions;
namespace Demo {
public class Program {
private static void showMatch(string text, string expr) {
MatchCollection mc = Regex.Matches(text, expr);
foreach (Match m in mc) {
Console.WriteLine(m);
}
}
public static void Main(string[] args) {
string str = "toss cross tacos texas";
Console.WriteLine("'t'で始まり's'で終わる単語を検索:");
showMatch(str, @"\bt\S*s\b");
}
}
}
このプログラムでは、showMatchメソッドがRegex.Matchesを呼び出してテキスト内のすべての一致箇所を取得し、見つかった単語を1行ずつコンソールに出力します。
実行結果
't'で始まり's'で終わる単語を検索: toss tacos texas
このように、\S*を組み合わせた正規表現パターンを活用すれば、C#でもワイルドカードのように柔軟な文字列一致処理を簡単に実装できます。
-
Pythonの正規表現を使ったパターンマッチング入門
正規表現とは? 実際のプログラミングの世界では、文字列の解析処理はほとんどの場合、正規表現によって行われています。Pythonにおける正規表現とは、テキストのパターンを照合(マッチング)するための手法です。 Pythonには標準で「re」モジュールが付属しており、これによって正規表現の機能が提供されます。追加のインストールは不要です。 Pythonでの正規表現検索は、一般的に次のように記述します。 match = re.search(pattern, string) re.search()メソッドは、「正規表現パターン」と「検索対象の文字列」の2つの引数を受け取り、その文字列の中からパターン
-
Bash/シェルスクリプトで文字列を連結する方法【実例付き】
Bashで文字列を連結(結合)する「正しい」方法を、実例とともにわかりやすく解説します。 シェルスクリプトで2つ以上の文字列をつなげる方法はいくつかあります。外部コマンドに文字列を渡し、その処理結果として結合された文字列を受け取ることも可能ですが、コマンドの副作用を利用した連結は非効率で無駄が多くなりがちです。そこで本記事では、最もシンプルで読みやすい方法に絞って紹介します。 別の文字列の中に文字列を挿入する 新しい文字列を作成するときに、既存の変数を埋め込むことができます。 #!/bin/bash string1=Hello string2=${string1} there! echo ${