在给定起点和终点的字符串内替换字符串

时间:2011-06-23 15:32:18

标签: php preg-replace pattern-matching

当你给出开始和结束时,你能不能帮我一个字符串里面的字符串。实际上,我想在以下示例中删除//[langStart-en]//[langEnd-en]之间的所有内容

//[langStart-en]  This is a test //[langEnd-en]

使用preg_replace。我使用了以下代码

  $string = '//[langStart-en] This is a test //[langEnd-en]';
    $pattern = '/\/\/\[langStart-en\][^n]*\/\/\[langEnd-en\]/';
    $replacement = '//[langStart-en]//[langEnd-en]';
    $my_string = preg_replace($pattern, $replacement, $string);

    echo $my_string;

显示以下错误 Warning: preg_replace() [function.preg-replace]: Unknown modifier '/' : eval()'d code on line 4" 请帮忙

5 个答案:

答案 0 :(得分:1)

你走了:

// [langStart烯] // [langEnd烯]

对于那些幽默感较低的人 - 羞辱你。但这是一个答案。

var str = '//[langStart-en] This is a test //[langEnd-en]';
str.replace(/\/\/\[langStart-en\].+\/\/\[langEnd-en\]/g, '//[langStart-en]//[langEnd-en]');

答案 1 :(得分:1)

如果可以连接给定的字符串,为什么要删除给定字符串之间的字符串。他们会给你相同的结果。

string c = a + b;

答案 2 :(得分:0)

是的,我不是故意要讽刺。

$my_string = '//[langStart-en]//[langEnd-en]';

$string = '//[langStart-en] This is a test //[langEnd-en]';
$pattern = '/\/\/\[langStart-en\][^n]*\/\/\[langEnd-en\]/';
$replacement = '//[langStart-en]//[langEnd-en]';
$my_string = preg_replace($pattern, $replacement, $string);

echo $my_string;

答案 3 :(得分:0)

不确定您使用哪种语言来执行此操作。

但大多数语言都有功能索引。

var mystring - “cccctestoooabcccc”; var i = mystring.indexof(“test”); var x = mystring.indexof(“abc”);

使用这些索引,你可以使用像substring(startindex,endindex);

这样的函数

虽然,您必须添加或减去字符串的长度(test或abc) 因为索引是第一个字符位置。 所以 i = 4且x = 11 你想要拉((i +“test”。length),x)之间的子串 希望拉出子串“ooo”

这很粗糙,但应该给你一般的想法。

答案 4 :(得分:0)

$string = '//[langStart-en] This is a test //[langEnd-en]';
$string = preg_replace(
      '/\/\/\[langStart-en\][\s\S]+?\/\/\[langEnd-en\]/',
      '//[langStart-en]//[langEnd-en]',
      $string
 );