簡體   English   中英

正則表達式替換之前沒有特定單詞的單詞

[英]regex to replace a word if it doesn't have specific one before

在C#中使用正則表達式,如果之前沒有特定的單詞,我應該替換一個單詞。在我的示例中,它將用“ Steve Ballmer”替換“ Ballmer”

在:

...text...Ballmer...text

結果:

...text...Steve Ballmer...text

但是如果已經有“史蒂夫”了,我就不應該再添加史蒂夫了。

在:

...text...Steve Ballmer...text

結果:

...text...Steve Ballmer...text

謝謝。

使用負向后看(?<!...)和正向前看(?=...)

string output = Regex.Replace(input, @"(?<!Steve )(?=Ballmer)", "Steve ");

匹配Ballmer時,請使用負向后看

string result = Regex.Replace(input, @"(?<!Steve )Ballmer", "Steve Ballmer");

這將完全滿足您的要求。 匹配任何沒有緊跟Steve (和空格)的Ballmer

正則表達式很有趣,但是在使用大手筆之前嘗試簡單的工具也是值得的。 這個特殊的問題可以通過基本的查找和替換來解決

  1. 將“鮑爾默”替換為“史蒂夫·鮑爾默”
  2. 將“史蒂夫·史蒂夫·鮑爾默”替換為“史蒂夫·鮑爾默”(糾正任何超負荷情況)

另外

  1. 將“史蒂夫·鮑爾默”替換為“鮑爾默”
  2. 將“鮑爾默”替換為“史蒂夫·鮑爾默”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM