正则表达式 - 如何检查字符串是否以给定字符开头或结尾?
Regexp - How to check whether a string starts OR ends with given character?
以该字符开头和结尾的字符串不应匹配。
是否最简单的做法是:
$string = '!test';
preg_match('/^(!?)([a-z0-9]{1,10})(!?)$/i', $string, $matches);
并检查 $matches?
如果开头或结尾只有一个字符,就这么简单:
/^!|!$/
不需要捕获组。
更新: 确保您得到 一个感叹号和十个字母 或 十个字母和一个感叹号标记,像这样构建你的模式:
/^!?[a-z0-9]{1,10}$|^[a-z0-9]{1,10}!?$/
它看起来像是在重复自己,但实际上它比拥有三个捕获组更便宜、更快。
以该字符开头和结尾的字符串不应匹配。
是否最简单的做法是:
$string = '!test';
preg_match('/^(!?)([a-z0-9]{1,10})(!?)$/i', $string, $matches);
并检查 $matches?
如果开头或结尾只有一个字符,就这么简单:
/^!|!$/
不需要捕获组。
更新: 确保您得到 一个感叹号和十个字母 或 十个字母和一个感叹号标记,像这样构建你的模式:
/^!?[a-z0-9]{1,10}$|^[a-z0-9]{1,10}!?$/
它看起来像是在重复自己,但实际上它比拥有三个捕获组更便宜、更快。