1
4

3 に答える 3

2

マッチングパターンにt1を含めてみませんか?

string pattern = " from t1";
string answer=Regex.Relace(q , pattern , ",field3 from t1");
于 2012-08-10T19:49:01.407 に答える
1

あなたは交換の数を制限しようとしているように聞こえるので、この質問はすでにここで回答されているようです:

.NETで文字列の最初の出現のみを正規表現で検索/置換する方法は?

[編集:] 最初のコメントへの返信:

申し訳ありませんが、FROM が例なのか、実際に何をしようとしているのかわかりませんでした。制御可能な文字列に基づいていないものを置き換えようとすると問題があります。入ってくるすべての文字列を制御できない場合は、次のような場合も処理する必要がある場合があります。

SELECT [From], [To], [Email], [Subject] FROM EmailsSent

最終結果は、指定された文字列を 100% 制御できないため、正規表現は括弧と括弧をチェックするために前後を調べなければならないということです。あなたがしていることは悪い習慣のように聞こえ、代替手段がない場合にのみ実行する必要があることに注意してください。ルックアヘッド/ビハインド情報を見てください。それについてもっとグーグルできるはずです:

http://openmymind.net/2011/2/16/Regex-Positive-Negative-Look-Ahead-Behind/

于 2012-08-10T19:51:07.387 に答える
0
string q = "select field1,field2 from t1 where field1 in (select field1 from t2 where t2.field2>5)";

Regex r=new Regex(@"from.*$");
string s=r.Replace(q,",field3 $0");//output
于 2012-08-11T03:30:37.423 に答える