我使用PHP,我需要检查是否是由
组成的字符串这样的事情:
$str = "test"; // true
$str = "test_-'; // true
$str = "t-s"; // true
$str = "test1"; // false
$str = "Test"; // false
$str = "test?"; // false
以下是一些例子:
limit
答案 0 :(得分:1)
使用PHP函数
preg_match()
使用这个正则表达式:
$regex = [a-z\_\-]+
\是要逃脱下划线和破折号。 +表示您必须至少拥有1个字符。
这是正则表达式http://www.regexpal.com/
的便捷工具答案 1 :(得分:1)
尝试使用尺寸
/**
* Test if a string matches our criteria
*/
function stringTestOk($str) {
return !(preg_match_all('/[^a-z_\-]/', $str) > 0);
}
// Examples
foreach(['test', 'test_-', 't-s', 'test1', 'Test', 'test?'] as $str) {
echo $str, ' ', (stringTestOk($str) ? 'true' : 'false'), PHP_EOL;
}
答案 2 :(得分:1)
要匹配仅包含1个或多个小写ASCII字母,连字符或下划线的整个字符串,请使用
/^[-a-z_]+$/D
请参阅regex demo
<强>详情:
^
- 字符串开头[-a-z_]+
- 一个或多个ASCII小写字母,连字符或下划线$
- 字符串结尾/D
- 使$
与字符串的结尾匹配的修饰符(否则,$
也会匹配出现在该字符串的换行符字符串的结尾)。PHP:
if (preg_match('/^[-a-z_]+$/D', $input)) {
// Yes, all characters of the string are English lowercase letters or dash or underline
} else {
// No, there is at least one unexpected character
}