我已尝试使用此正则表达式删除冒号之前的所有内容,但是,它会重复删除。
^[^:]+:\s*
以下需要从
更改afghanistan : Afghanistan
albania : Albania
algeria : Algeria
andorra : Andorra
angola : Angola
到
Afghanistan
Albania
Algeria
Andorra
Angola
任何指针?
答案 0 :(得分:0)
如果您想确保不跨行溢出,则需要将\r\n
添加到否定字符类,并将\s
替换为与\h
相符的换行符(水平空白模式)(如果不支持[ \t]
,则为\h
。)
所以,你可以使用
^[^:\r\n]+:\h*
(see demo)或
^[^:\r\n]+:[ \t]*
替换为空字符串(another demo)。
在Notepad ++ 中,您需要匹配整行以摆脱递归行为:
^[^:\r\n]+:\h*(.*)
替换为\1
。请参阅yet another regex demo。
模式详情
^
- 行的开头(如果不是默认值,则前缀为(?m)
内联修饰符)[^:\r\n]+
- 除:
,CR和LF :
- 冒号\h*
- 零个或多个水平空格(.*)
- 第1组(在替换模式中称为\1
或$1
)捕获除断行符之外的任何零个或多个字符,尽可能多(最多行尾)。答案 1 :(得分:0)
echo "afghanistan : Afghanistan" | sed 's/\(.*\):\(.*\)/\2/'