Iva*_*ich 3 c# regex regex-lookarounds
Name: John
Surname: Doe
Age: 24
Run Code Online (Sandbox Code Playgroud)
当我做
Regex.Replace(str,"(?<=^|\n)(.*)(?=:)", "")
Run Code Online (Sandbox Code Playgroud)
我明白了
: John
: Doe
: 24
Run Code Online (Sandbox Code Playgroud)
我想去掉冒号而不使用另一个替换
这(?=:)是一种积极的前瞻,是一种非消耗模式。该:char 已被测试,但它没有落在匹配值内,因此不会被该Regex.Replace方法替换。
您可以通过仅将前瞻模式转换为消费模式(即(?=:)=> )来使您的模式发挥作用:,但您可以使用来简化您的模式
(?m)^.*:
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
匹配行(?m)^的开头,无需使用,因为它准确地表示了这一点。然后,匹配除换行符之外的任何 0+ 字符,尽可能多地匹配到最后一个和最后一个。(?<=^|\n).*:::
要同时删除 后的空格:,您可以添加\s*, 或 (如果您只想处理水平空格字符)[\p{Zs}\t]*。