-2

所以有一个字符串,

<?php

$string = <<<STR

/\!@#$%^&*()?.,djasijdiwqpk,=-c./zcxzo123154897kp02ldz.,world90iops02&&&8ks

STR;

我想将所有内容都替换为 NULL,除了单词“world”和数字 1 和 3,

我只想使用正则表达式从该字符串中获取“world13”或“world31”

我已经通过 strpos() 和 substr() 实现了基本解决方案,这是例外情况。但我需要通过 RegExp 做到这一点

问题是:

是否可以使用 RegEx 提取该单词?

4

3 回答 3

1

是否可以使用 RegEx 提取该单词?

是的。你可以使用这个正则表达式:

(world)

我知道,但我无法提取 world13 或 world31

啊我懂了!您可以使用:

$string = preg_replace('/.*/s', 'world13', $string);
于 2012-06-21T08:08:33.793 回答
1

~(world(?:(31|13))~i. 使'i'正则表达式不区分大小写。?:存在所以它不会将它放在匹配数组中的单独结果中。顺便说一句,不会说它很复杂:)如果你想要每个1 和 3 都在里面,你可以使用~(world|1|3)~i.

于 2012-06-21T08:18:03.700 回答
1

一个简单的解决方案是找到您需要的东西,然后将它们连接到一个字符串中。

preg_match_all('/world|[13]/', $string, $matches);
$ret = join($matches[0]);
于 2012-06-21T08:31:48.947 回答