GroupCollection
キャプチャで s を使用してアイテム ID のグループをキャプチャする正規表現があります(これはコンマで区切ることができ、最後の ID に「and」という単語を含めることもできます)。
(\bItem #(?<ITEMID>\d+))|(,\s?(?<ITEMID>\d+))|(,?\sand\s(?<ITEMID>\d+))
C# のRegex
クラスを使用して ITEMID 番号を URL に置き換える簡単な方法はありますか? 現在、私は次のものを持っています:
foreach (Match match in matches)
{
var group = match.Groups["ITEMID"];
var address = String.Format(UnformattedAddress, group.Value);
CustomReplace(ref myString, group.Value, address,
group.Index, (group.Index + group.Length));
}
public static int CustomReplace(ref string source, string org, string replace,
int start, int max)
{
if (start < 0) throw new System.ArgumentOutOfRangeException("start");
if (max <= 0) return 0;
start = source.IndexOf(org, start);
if (start < 0) return 0;
var sb = new StringBuilder(source, 0, start, source.Length);
var found = 0;
while (max-- > 0)
{
var index = source.IndexOf(org, start);
if (index < 0) break;
sb.Append(source, start, index - start).Append(replace);
start = index + org.Length;
found++;
}
sb.Append(source, start, source.Length - start);
source = sb.ToString();
return found;
}
CustomReplace
文字列ソース内の文字列を別の文字列に置き換える簡単な方法としてオンラインで見つけた方法。問題は、おそらくクラスを使用して必要に応じて sRegex
を置き換える、より簡単な方法があると確信していることです。GroupCollection
私はそれが何であるか理解できません。ありがとう!
テキスト例:
Hello the items you are looking for are Item #25, 38, and 45. They total 100 dollars.
25
、38
、および45
は、作成中の URL 文字列 (これは HTML 文字列です) に置き換える必要があります。