Regex 我如何为这场比赛制作正则表达式
我正在使用这个正则表达式,对此已经有一段时间了,我决定在这里问它: 我该如何转向:Regex 我如何为这场比赛制作正则表达式,regex,sed,Regex,Sed,我正在使用这个正则表达式,对此已经有一段时间了,我决定在这里问它: 我该如何转向: bin->/system/bin 到 /系统/垃圾箱 使用sed a、 k.a移除箭头并将其后面的文本置于前面 我尝试了s/->.*/^/g,但没有成功。命令将第一个->.*/^/g与行的其余部分匹配,并将匹配项替换为^g标志在这里是多余的 由于您的字符串中只有一个->,使用awk,它变得简单得多: awk -F'->' '{print $2" "$1}' file awk -F'[[:space:
bin->/system/bin
到
/系统/垃圾箱
使用sed
a、 k.a移除箭头并将其后面的文本置于前面
我尝试了
s/->.*/^/g
,但没有成功。命令将第一个->.*/^/g
与行的其余部分匹配,并将匹配项替换为^
<代码>g标志在这里是多余的
由于您的字符串中只有一个->
,使用awk
,它变得简单得多:
awk -F'->' '{print $2" "$1}' file
awk -F'[[:space:]]*->[[:space:]]*' '{print $2" "$1}' file
-F'->'
将字段分隔符设置为->
([[:space:]]*->[:space:]*
将包括其前后的任何空格),您需要按相反顺序打印两个字段值
使用代码> SED,可以考虑像
这样的解决方案sed 's/\(.*\) -> \(.*\)/\2 \1/' file
在这里,
\(.*)->\(.*)
将匹配并捕获->
之前的任何数量的字符到组1,然后->
将匹配->
,最后一个\(.*)
将匹配并捕获任何数量的字符到组2。\2\1
替换将交换两个组值。欢迎使用堆栈溢出。这也是一个面向专业和热情程序员的问答页面。在问题中添加您自己的代码。你至少要展示你自己在解决这个问题上所做的研究。而且,差不多90%的SED问题,你考虑过<代码> AWK < /代码>吗?在这里,您可能更容易使用->
separatorOk将字段拆分为多个字段。我试过s/->./^/g
,但确实有效。我真的不太懂正则表达式。@WiktorStribiżew如何使用awk?awk-F'->'{print$2'$1}'文件
,或awk-F'[[:space:]*->[:space:]*'{print$2'$1}'文件