检查一个单词的开头和结尾是否有字母
Check a word whether it has letter in the start and at the end
支持我有话要说。我必须检查它们是否有 "RX" 开头和 "CD" 结尾。
例如
我有这个"RX3!Pl6HxTCD"。
下面是我试过的
$subject = "RX3!Pl6HxTCD";
$pattern = '/^CD/';
preg_match($pattern, substr($subject,10), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
我得到的是
Array ( [0] => Array ( [0] => CD [1] => 0 ) )
我想检查单词的前 2 个字母和后 2 个字母。并且字母的数量可能会增加。
提前致谢。
如果要检查字符串的开头和结尾,则不应 substr
字符串。
使用
if (preg_match('/^RX.*CD$/sD', $subject, $matches)) {
print_r($matches);
}
参见PHP demo。
模式将匹配
^
- 字符串开头
RX
- RX
子字符串
.*
- 任意 0+ 个字符,尽可能多
CD
- CD
子字符串
$
- 字符串结尾。
由于s
修饰符,.
也会匹配换行符,而D
,如果CD
后跟一个换行符,则不会匹配, LF,在字符串的末尾。
但是,您也可以使用非正则表达式方法:
if (substr($subject, 0, 2) === 'RX' && substr($subject, -2) === 'CD') {
echo "$subject\n";
}
参见PHP demo。
支持我有话要说。我必须检查它们是否有 "RX" 开头和 "CD" 结尾。
例如 我有这个"RX3!Pl6HxTCD"。
下面是我试过的
$subject = "RX3!Pl6HxTCD";
$pattern = '/^CD/';
preg_match($pattern, substr($subject,10), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
我得到的是
Array ( [0] => Array ( [0] => CD [1] => 0 ) )
我想检查单词的前 2 个字母和后 2 个字母。并且字母的数量可能会增加。
提前致谢。
如果要检查字符串的开头和结尾,则不应 substr
字符串。
使用
if (preg_match('/^RX.*CD$/sD', $subject, $matches)) {
print_r($matches);
}
参见PHP demo。
模式将匹配
^
- 字符串开头RX
-RX
子字符串.*
- 任意 0+ 个字符,尽可能多CD
-CD
子字符串$
- 字符串结尾。
由于s
修饰符,.
也会匹配换行符,而D
,如果CD
后跟一个换行符,则不会匹配, LF,在字符串的末尾。
但是,您也可以使用非正则表达式方法:
if (substr($subject, 0, 2) === 'RX' && substr($subject, -2) === 'CD') {
echo "$subject\n";
}
参见PHP demo。