我想知道如何从这个字符串中获取number1和number2的标识符。
NAME IDENTIFIER-NUMBER1-NUMBER2
示例:
John Doe ABC-3901-11801
我想将IDENTIFIER NUMBER1和NUMBER2单独分成不同的变量。
但问题是我不知道它的位置是什么,或者背后是否有额外的文字如下:
Blablabla ABC-3901-11801 John Doe Blablabla
ofc也可以有不同的数字和字母:
XYZ-46781-28102
任何人都可以解释一下如何在php中找到这些变量。
提前致谢
答案 0 :(得分:1)
假设:
此正则表达式将起作用 - > '/([A-Z]{3})-([0-9]*)-([0-9]*)/'
示例:
$data = 'Blablabla ABC-3901-11801 John Doe Blablabla';
preg_match_all('/([A-Z]{3})-([0-9]*)-([0-9]*)/', $data, $matches, PREG_PATTERN_ORDER);
var_dump($matches);
这将输出
array
0 =>
array
0 => string 'ABC-3901-11801' (length=14)
1 =>
array
0 => string 'ABC' (length=3)
2 =>
array
0 => string '3901' (length=4)
3 =>
array
0 => string '11801' (length=5)
编辑: 这里也是一个更通用的正则表达式:
/([A-Za-z]*)-([0-9]*)-([0-9]*)/
这只假设IDENTIFIER只包含字母(任意数字,大写或小写)
例如,这个正则表达式适用于这种情况Blablabla abcdef-3901-11801 John Doe Blablabla