簡體   English   中英

正則表達式查找和替換與其他模式匹配的模式

[英]Regex find and replace pattern matches with other pattern

用字符串替換模式匹配是一種常見的方法,但我需要替換所有與文本中的模式匹配的子字符串,以作為另一個模式匹配進行匹配,這可能嗎?

例如,是否可以將所有匹配項替換為[0-9]{2}'[0-9]{2}表示所有字符串,如99'9985'55

到這個[0-9]{2}.[0-9]{2}代表所有字符串,如99.9985.55

是否可以? 如何進行這種替換? 或者我必須通過每個循環的匹配手動處理它?

Regex.Replace()實例函數與 Regex 捕獲組一起使用,如下所示:

var regex = new Regex("([0-9]{2})'([0-9]{2})");
string result = regex.Replace(input, "$1.$2");

可以在此處找到有關捕獲組的更多詳細信息。

另外,看看這個答案 它展示了如何使用“命名”組,這可能在未來有所幫助。

所以據我了解,您有 99'99 或 85'55 之類的東西,並希望將其替換為 99.99 或 85.55?

您可能要查找的是捕獲組,即查找匹配項,捕獲此匹配項並將其放入結果中。

這里的正則表達式是s/([0-9]{2})'([0-9]{2})/$1.$2/g

說明: ([0-9]{2})括號聲明了字幕組。 這意味着,其中捕獲的任何內容都將存儲到變量中。 這些變量是$1$2 ,因為有兩個捕獲組。

在構建替換字符串時,只需插入這些變量並在它們之間放置點。

暫無
暫無

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

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