簡體   English   中英

從給定文本中查找匹配的第一個單詞-Regex

[英]Find First Word matching from Given Text - Regex

我想從正則文本中找到匹配的第一個單詞,並使用正則表達式替換為另一個單詞。

考慮以下字符串作為示例文本

您的商品是哪種類型? 我想該項目不是字符串,如果可以的話,您可以覆蓋該項目類中的ToString()方法並使用jayant的代碼。

我想在其中搜索第一個“項目”詞,然后將其替換為文本“ hello”。 記住,我只想替換第一個“ item”一詞,而不是全部。

因此,上述文本的輸出將類似於以下內容。

你好是哪種類型? 我想該項目不是字符串,如果可以的話,您可以覆蓋該項目類中的ToString()方法並使用jayant的代碼。

我正在使用C#編程來做到這一點,並且如果可能的話,我寧願使用Regex。

誰能幫我這個忙。

您可以將Regex.Replace()方法與第三個參數一起使用(最大替換量):

Regex rgx = new Regex("item");
string result = rgx.Replace(str, "hello", 1);

ideone看到

(盡管在這種情況下,您實際上不需要正則表達式,因為您正在搜索常量。)

如果您願意接受非正則表達式替代方案,則可以執行以下操作

public static string ReplaceOnce(this string input, string oldValue, string newValue)
{
    int index = input.IndexOf(oldValue);
    if (index > -1)
    {
        return input.Remove(index, oldValue.Length).Insert(index, newValue);
    }

    return input;
}

//

Debug.Assert("bar bar bar".ReplaceOnce("bar", "foo").Equals("foo bar bar"));

暫無
暫無

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

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