0

以下の正規表現の取得方法を教えてください。「。abc_」の前の単語をjohnに変更したいと思います。前の単語は、任意の長さの文字にすることができます。

 material.abc_Inventory    = john.abc_Inventory  
 abx.abc_abxx              = john.abc_abxx  
 stackoverflow.abc_stack   = john.abc_stack

修正文字が長い場合は変更できますが、このランダムな単語はありません。お知らせ下さい

-------以下を編集------以下
の要件を見逃します。以下の解決策で提案された正規表現は、キーワードの前にある「挿入」を含むすべてのテキストを強調表示しました。

insert into material.abc_Inventory   = insert into john.abc_Inventory  
insert into material.ABC_Inventory   = insert into john.ABC_Inventory
4

2 に答える 2

1

これを試して:

Console.WriteLine(Regex.Replace("material.abc_Inventory", "^[^.]*[.]abc_", "john.abc_"));

.abc_この式では、前の文字列にドットが含まれることはありません。ドットを許可する場合は、"^.*?\[.\]abc_"代わりに(ideone link)を使用してください。

編集:スペースを避ける必要がある場合は、別の式を使用してください(ideone link):

Console.WriteLine(Regex.Replace("material.abc_Inventory", "^[^. ]*[.]abc_", "john.abc_"));

これで、キーワードの前の連続する文字のリストでスペースも除外されます。

于 2012-09-13T02:32:23.060 に答える