删除或替换直到perl中第一个出现的字符

时间:2013-09-20 02:15:07

标签: perl

我的程序包含类似

的字符串
$abc= "mojo logo sfdgsdj2123 *** mojo **";

我想将其更改为

$abc= "mojo *** mojo **";

我该怎么做?

“logo”和第一个“*”之间的字符也可以是“*”以外的任何字符(即不一定是sfdgsd2123)。

所以基本上问题是在第一次“mojo”之后删除直到第一次出现“*”。

请帮忙......

1 个答案:

答案 0 :(得分:1)

我会告诉你“这是你应该如何回答”,而不是写下替换代码,就像你问“我怎么能这样做?”

所以这是如何:

  1. 将“正则表达式”设为“一系列零个或多个非星号字符,前面是单词mojo”

  2. 将与该正则表达式匹配的第一个匹配子字符串替换为空字符串。

  3. 这就是它的全部。这是Perl中的一个小内容,大多数语言都有足够复杂的正则表达式引擎来支持积极的外观。

    如果所有这些听起来都很疯狂,请随意逐字逐句地走过字符串。找到首先出现“mojo”的地方。然后继续遍历字符串,删除遇到的所有非星号字符。