假设我有以下行:
1309270927C1642,61N654NONREF
现在我想得到C
或D
在第一个数字之后。现在这里有一些规则
- 前 6 位数字始终存在
- 后面的 4 位数字是可选的
- 之后你就有了
D
或C
.
现在我想通过回顾来解决这个问题:
/(?<=\d{6,10})D|C/
但这在 PHP 中是不允许的。
所以我尝试了一个非捕获组 /(?:\d{6,10})D|C/
。但这捕获了1309270927C
而不仅仅是C
.
所以我的问题是如何捕获 D
或C
?
最佳答案
我会使用capturing subpattern ,像这样:
$string = "1309270927C1642,61N654NONREF";
$pattern = '/\d{6,10}(C|D)/';
preg_match($pattern, $string, $matches);
// $matches[1] contains the contents of the first subpattern
echo $matches[1];
关于php - 如何使用正则表达式获取数字后的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29514894/