Name: John
Surname: Doe
Age: 24
当我做
Regex.Replace(str,"(?<=^|\n)(.*)(?=:)", "")
我明白了
: John
: Doe
: 24
我想在不使用其他替换品的情况下摆脱冒号
(?=:)
是一个积极的前瞻,是一种非消费模式。测试了:
char,但它没有落在匹配值内,因此不会被Regex.Replace
方法替换。
您可以通过仅将前瞻模式转换为消耗模式(即(?=:)
=> :
)来使您的模式工作,但您可以使用简化模式来简化模式
(?m)^.*:
(?m)^
匹配一行的开头,没有必要使用(?<=^|\n)
,因为它恰好表示。然后,.*:
匹配除了换行符之外的任何0+字符,尽可能多地使用最后一个:
以及最后一个:
。
要在:
之后删除空格,您可以添加\s*
,或者(如果您只想处理水平空白字符)[\p{Zs}\t]*
。