我需要在更长的字母数字数据字符串中识别子字符串'X.123'和/或'X.8'。例如:
A cow flew over the moon in the X.123 module, not the X.124.3 module,
and certainly not the X.125C78 module. The cow poo-pooed the X.8 module.
我如何排除第二个和第三个实例?这是我到目前为止得到“X.123”部分:
/[X][\.][0-9]{1,4}/
我不确定如何使表达式停止在任何非数字字符处(例如:X124C78)
非常感谢!
答案 0 :(得分:4)
\ b 在这种情况下很不错,我会像这样使用它:
/\bX\.\d{1,4}\b/
答案 1 :(得分:2)
试试这个:
/X\.[0-9]{1,4}(?=\s|$)/
答案 2 :(得分:1)
我会用这个。开始时的\b
有助于避免AX.123
/\bX\.\d+(?=\s|$)/
preg_match_all('/\bX\.\d+(?=\s|$)/', $subject, $result, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($result[0]); $i++) {
# Matched text = $result[0][$i];
}