簡體   English   中英

正則表達式查找運行時確定的任意字符串

[英]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結尾”更為復雜。

使用Regex.Escape()

string myRegex = Regex.Escape(myString) + @"\s";

暫無
暫無

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

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