この種の問題では、文字列ごとに異なるさまざまな「トークン」(「ユーロ」、「$」、「mkd」など)を解析しているため、正規表現は使用しません。代わりに、文字列を部分に分割し、各「トークン」を認識する単純な解析関数を使用する必要があります。複雑さが増した場合、この方法ははるかに柔軟です。
private void Form1_Load(object sender, EventArgs e)
{
String first = "20 $ to euro";
String[] result = first.Split(null);
for (int i = 0; i < result.Count(); i++)
{
MessageBox.Show(result[i]);
switch (i)
{
case 0: getCurrencyValue(result[i]); break;
case 1: parseCurrencyFrom(result[i]); break;
case 2: parseCurrencyTo(result[i]); break;
}
}
}
public void parseCurrencyTo(String currencyCode)
{
switch (currencyCode)
{
case "euro": stuff(); break;
case "$": stuff() break;
}
}