2

アポストロフィ (O'Connor、O'Neil) を含む名前を検索し、アポストロフィを 2 つのアポストロフィ (O''Connor、O''Neil) に置き換えることができる正規表現を構築しようとしています。

問題の文字列のすべてのアポストロフィでこれを行うのではなく、2 つの文字 (大文字または小文字) の間に表示されるアポストロフィのみを使用します。'現在、LETTER-APOSTROPHE-LETTER のインスタンスを見つけるのに問題はありませんが、そのシーケンスを取得して を に変更する方法がわかりません''

4

4 に答える 4

7

これはデータベースに値を挿入するためのものだとおっしゃいました。これを行わないでください - 代わりにパラメーター化されたクエリを使用してください。これにより、エスケープが適切に処理されます。 ジョン・スキートはそう言っています。

于 2012-08-10T15:07:14.170 に答える
1
new Regex("([a-zA-Z])'([a-zA-Z])").Replace(input, match => match.Groups[1] + "''" + match.Groups[2])
于 2012-08-10T15:00:59.493 に答える
1
string result = Regex.Replace(input, @"(?<=[^'])(')(?=[^'])", "''");
于 2012-08-10T15:03:24.170 に答える
0

これは機能します、私はちょうどそれをテストしました:

Regex.Replace("(\w)'(\w)","$1''$2");

(オコナー、オニール)は(オコナー、オニール)に変わります

于 2012-08-10T14:58:24.610 に答える