![](/img/trans.png)
[英].Net regex matching $ with the end of the string and not of line, even with multiline enabled
[英]Replace a string in multiline regex with end of line token
我得到了以下正則表達式
var fixedString = Regex.Replace(subject, @"(:[\w]+ [\d]+)$", "",
RegexOptions.Multiline);
這不起作用。 如果我使用\\r\\n
,它可以工作,但我想支持所有類型的換行符。 作為另一個答案陳述我必須使用RegexOptions.Multiline
才能使用$
作為行結束標記(而不是字符串結尾)。 但它似乎沒有幫助。
我究竟做錯了什么?
我不知道你想要實現什么,我想我明白了,你想要替換行尾的換行符。
問題是$
是零寬度斷言。 它與換行符不匹配,它匹配\\n
之前的位置。
你可以做其他不同的事情:
如果可以匹配所有后續換行符,也意味着所有后面的空行,您可以這樣做:
var fixedString = Regex.Replace(subject, @"(:[\\w]+ [\\d]+)[\\r\\n]+", "");
如果您只想匹配行后的換行符並保持跟隨空行,則必須為所有可能的組合創建一個模式,例如:
var fixedString = Regex.Replace(subject, @"(:[\\w]+ [\\d]+)\\r?\\n", "");
這將匹配組合\\n
和\\r\\n
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.