PHP - 获取正则表达式中的第一个字符[+] +

时间:2014-12-02 14:43:01

标签: php regex

preg_replace("/[dsa]+/", "$Something that gets the first char of [dsa]+", "abcdaeefg")

要返回:

"abcdeefg"

“abc [da] eefg”,其中“d”后跟“a”,所以将“da”替换为“d”。

那你怎么能这样做?

3 个答案:

答案 0 :(得分:2)

这样的东西
preg_replace("/([dsa])[dsa]+/", "$1", "abcdaeefg")

将输出

abcdeefg
  • caputure group 1,$1将包含 [dsa] + 的第一个字符

示例:http://regex101.com/r/vH3fR3/1

答案 1 :(得分:1)

您可以使用以下正则表达式。

echo preg_replace('/[dsa]\K[dsa]+/', '', 'abcdaeefg'); //=> "abcdeefg"

说明:

[dsa]\K      # any character of: 'd', 's', 'a' and reset the reported match
[dsa]+       # any character of: 'd', 's', 'a' (1 or more times)

答案 2 :(得分:0)

另一种解决方案:

preg_replace("/(?<=[dsa])[dsa]+/", "", "abcdaeefg");

结果:

abcdeefg

现场演示:http://www.phpliveregex.com/p/8xU