0

我的程序包含一个字符串,如

$abc= "mojo logo sfdgsdj2123 *** mojo **";

我想把它改成

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

我怎样才能做到这一点?

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

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

请帮忙...

4

1 回答 1

1

我会给你“这就是你将如何回答”而不是写替换代码,因为你确实问过“我该怎么做?”

所以这里是如何:

  1. 为“以单词 mojo 开头的零个或多个非星号字符序列”创建正则表达式

  2. 用空字符串替换与该正则表达式匹配的子字符串的第一次出现。

这里的所有都是它的。它是 Perl 和大多数语言中的一个小单行字,具有足够复杂的正则表达式引擎来支持积极的后视。

如果这一切听起来很疯狂,请随意逐个字符地浏览字符串。找到“mojo”首先出现的位置。然后继续遍历字符串,删除您遇到的所有非星号字符。

于 2013-09-20T02:23:40.960 回答