Name: John
Surname: Doe
Age: 24
当我这样做时
Regex.Replace(str,"(?<=^|\n)(.*)(?=:)", "")
我得到了
: John
: Doe
: 24
我想在不使用其他替换
的情况下摆脱冒号答案 0 :(得分:3)
(?=:)
是一种积极的先行,是一种非消费模式。 :
char已经过测试但它没有落在匹配值中,因此不会被Regex.Replace
方法替换。
您可以通过仅将前瞻模式转换为消费模式来使您的模式工作,即(?=:)
=&gt; :
,但您可以使用
(?m)^.*:
请参阅regex demo
(?m)^
匹配行的开头,不需要使用(?<=^|\n)
,因为它恰好表示了。然后,.*:
尽可能多地匹配除换行符之外的任何0 +字符,直到最后:
以及最后:
。
要删除:
后的空白,您可以添加\s*
,或者(如果您只想处理水平空白字符)[\p{Zs}\t]*
。
答案 1 :(得分:0)
将正向前移为负向前移。