正则表达式停止在第一场比赛而不是最后一场比赛?使用PHP

时间:2015-06-09 05:32:11

标签: regex

如果我有a111Ta222T

我想用PHP a111T

提取

重点是在第一次出现T时停止匹配,而不是在最后一次T。

如何使用正则表达式执行此操作?

我不想使用 a[\S]+(?=a)

可以有相同的结果 a111T

3 个答案:

答案 0 :(得分:1)

使用非贪婪的+?

/a.+?T/

Regex Demo

<强>测试

preg_match('/a.+?T/', 'a111Ta222T', $matches);
echo $matches[0]
=> a111T

答案 1 :(得分:0)

^a\S+?T

你可以简单地执行此操作。+?非贪婪,并会在T的第一个实例停止。您还需要^锚定您的字符串,以便首先停止T

答案 2 :(得分:0)

你可以使用这个正则表达式

[^T]+T

检查此Demo

如果您希望您的匹配以字母a开头,则可以使用a[^T]+T