【发布时间】:2017-01-09 19:39:47
【问题描述】:
我有一系列文件,每个文件都以句子开头
创建表空间表空间名称 data.dbf
我需要提取 tablespace-name 并将 data.dbf 替换为 tablespace-name.dbf。
我是 perl 新手,但看起来我需要的是在 perl 中向后看(或向前看)正则表达式。
如何做到这一点?
【问题讨论】:
-
您可以尝试使用替换:
s/^(create tablespace) (tablespace-name) (data.dbf)/$1 $2 $2.dbf/ -
tablespace-name 在每个文件中都不同,我以前不知道那会是什么。这就是为什么我认为最好使用lookahead 或lookbehind 来获取“data.dbf”之前的单词或“tablespace”之后的单词。
-
为什么不直接替换这个? `数据`如
s/ data// -
@Borodin 我认为它与
ikegami的答案中包含的内容几乎相同。 -
@Peter:看来您不了解Stack Overflow 的哲学。你现在已经问了五个问题,所有问题的评价都很差,而且从未接受过一个答案。请使用Tour 并阅读How do I ask a good question?。然后您应该阅读What should I do when someone answers my question? 并将其应用于您收到的所有答案。您聘请了许多计算机专业人士,但没有任何适当的回应。
标签: perl lookahead lookbehind