使用通配符搜索不同的字符串,例如搜索test0?
(在?
之後有一個空格)。搜索產生字符串:C#正則表達式通配符多個替換
替換文本應是例如:
test0? -
在test0? -
以上通配符表示1,2或3 ...
所以,替換字符串應該是:
test01 -
test02 -
test03 -
string pattern = WildcardToRegex(originalText);
fileName = Regex.Replace(originalText, pattern, replacementText);
public string WildcardToRegex(string pattern)
{
return "^" + System.Text.RegularExpressions.Regex.Escape(pattern).
Replace("\\*", ".*").Replace("\\?", ".") + "$";
}
問題是保存新字符串與原始字符加上添加的字符。我可以搜索字符串並用一些字符串操作保存原文,但這似乎是太多的開銷。必須有一個更簡單的方法。
感謝您的任何意見。
編輯:
使用通配符搜索字符串? 可能的字符串是:
TEST01 someText
test02 someotherText
TEST03 moreText
使用正則表達式,搜索字符串圖案將是:
TEST0? -
所以,每個字符串應該然後閱讀: '?'
TEST01 - someText
test02 - - someotherText
TEST03 moreText
如何保持這是通過正則表達式通配符代替字符
正如我的代碼所示,它會作爲測試出來嗎? - someText
這是錯誤的。
謝謝。
編輯民2
首先,感謝大家對他們的答案和方向。 它確實有幫助,並讓我走向正確的軌道,現在我可以更好地提出確切的問題:
它與替代有關。
在正則表達式後面插入文本。
我給出的示例字符串,它們可能並不總是處於該格式。我一直在考慮替代,但似乎無法得到正確的語法。我正在使用VS 2008.
還有更多建議嗎?
感謝
您正在描述問題,好像我們都知道您正在處理的內容,並且已經進行了一段時間的項目。然而問題並不清楚。你能不能編輯你的問題,並用<20個字來描述你想要的內容?你可以放下一切,只是讓問題脫穎而出。 – Neolisk
這是非常不明確和令人困惑的。從我所看到的,你想'test01'成爲'test01 - ',其中1是通配符。它看起來並不像我最終的字符串完全取決於通配符,爲什麼不把' - '加到字符串的末尾......? – tnw
那麼'test0? '是一個定位器模板,'test0?-'是替代模板;那麼,根據什麼'?'匹配,它應該從定位器模板中取出並插入到替換模板中?是關於準確的? –