1

正規表現を使用して、URL リストで正確な URL マッチを見つけたい。

                string url = @"http://web/P02/Draw/V/Service.svc";
                string myword = @"http://web/P02/Draw/V/Service.svc http://web/P02/Draw/V/Service.svc?wsdl";
                string pattern = @"(^|\s)" + url + @"(\s|$)";
                Match match = Regex.Match(pattern, myword);
                if (match.Success)
                {
                    myword = Regex.Replace(myword, pattern, "pattern");
                }

しかし、パターンは結果を返しません。

問題は何だと思いますか?

4

4 に答える 4

2

奇妙なフォーマットは別として、リスト内の個々の URL に一致するパターンを次に示します。

Pattern = "http://([a-zA-Z]|/|[0-9])*\.svc";

率直に言って、構文や実装に問題があるとは思いません。上で書いた式を微調整したい場合は、ここで行うことができます: Online RegEx Tool

于 2012-11-06T08:12:48.350 に答える
1

メソッドに間違った引数を渡していますRegex.Match。このように引数を交換する必要があります>

Match match = Regex.Match(myword,pattern);
于 2012-11-06T08:07:17.687 に答える
1

文字列コレクションで Linq を使用しない理由 (スペースで分割されている場合)

myword.Split(' ').Where(x => x.Equals(url)).Single().Replace(url, "pattern");
于 2012-11-06T08:12:27.900 に答える
0
  • 指摘されているように、あなたの議論は間違った方向に進んでいます
  • .正規表現パターンでは特殊文字であるため、urlパターンを構築するために使用する場合はエスケープする必要があります-使用できますRegex.Escape(url)
  • 一致が成功したかどうかに依存する他のロジックがない限り、置換を実行する前に一致が成功したことを確認する必要はありません。
于 2012-11-06T08:15:00.797 に答える