[英]Regex find arbitrary string of characters determined at runtime
需要在運行時構造正則表達式(在我的情況下使用C#),以找到由某種模式包圍的給定字符串。 例如,程序知道它需要找到以targetString
內的空格結尾的myString
。 如果我們將正則表達式設置為
string myRegex = myString + @"\s";
如果myString
包含regex控制字符(例如),則regex將不可靠。 +等。例如說
myString = "f.f";
targetString = "f.ff fff f.f ff";
那么上面的正則表達式myRegex
將匹配我們想要的第一個fff
。 當然,正確的正則表達式為f\\.f\\s
但是鑒於大量的正則表達式控制字符,將myString
轉換為這種形式會很麻煩。
有沒有辦法用任意輸入字符串生成這樣的正則表達式? 理想情況下,將有一些控制字符可用於包裝myString
以指示字符串需要按字myString
進行匹配。 所以在我的幻想中,正則表達式可以用類似
string myRegex = @"{{" + myString + @"}}\s";
大括號代表我正在尋找的神奇結構。
請注意,圍繞myString
的模式可能比僅簡單地“以\\s
結尾”更為復雜。
string myRegex = Regex.Escape(myString) + @"\s";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.