Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果字符串以点开头或结尾,如何使其无效?_Php_Regex - Fatal编程技术网

Php 如果字符串以点开头或结尾,如何使其无效?

Php 如果字符串以点开头或结尾,如何使其无效?,php,regex,Php,Regex,例如,我想要.brewpixels和brewpixels.来回音 您的用户名无效 如果点位于第一个字母和最后一个字母之间,则脚本应回显 你的用户名很好 如何更改正则表达式以实现这一点 $username = 'brew.pixels'; if(preg_match('/(^\d|[^\w])/', $username)){ echo 'your username is invalid'; } else { echo 'your username is good'; } 以下内

例如,我想要
.brewpixels
brewpixels.
来回音

您的用户名无效

如果点位于第一个字母和最后一个字母之间,则脚本应回显

你的用户名很好

如何更改正则表达式以实现这一点

$username = 'brew.pixels';

if(preg_match('/(^\d|[^\w])/', $username)){
    echo 'your username is invalid';
} else {
    echo 'your username is good';
}

以下内容将匹配以点开头或结尾的字符串

(诀窍是避开圆点,因为它在正则表达式中有特殊含义)

在附加条件下,
仅在正文中使用alpha-num下划线和点

/^(\.[\w.]+|[\w.]+\.)$/

只需在给定代码中替换:

if(preg_match(regexToMatchBadWords, $username)){
    echo 'your username is invalid';
} else {
    echo 'your username is good';
}

或者,您可以通过强制第一个和最后一个字符为alpha-num下划线,并且内部正文也接受点,直接匹配正确的单词:

/^(\w[\w.]+\w)$/

这会反转代码中的逻辑:

if(preg_match(/^(\w[\w.]+\w)$/, $username)){
    echo 'your username is good';
} else {
    echo 'your username is invalid';
}

以下内容将匹配以点开头或结尾的字符串

(诀窍是避开圆点,因为它在正则表达式中有特殊含义)

在附加条件下,
仅在正文中使用alpha-num下划线和点

/^(\.[\w.]+|[\w.]+\.)$/

只需在给定代码中替换:

if(preg_match(regexToMatchBadWords, $username)){
    echo 'your username is invalid';
} else {
    echo 'your username is good';
}

或者,您可以通过强制第一个和最后一个字符为alpha-num下划线,并且内部正文也接受点,直接匹配正确的单词:

/^(\w[\w.]+\w)$/

这会反转代码中的逻辑:

if(preg_match(/^(\w[\w.]+\w)$/, $username)){
    echo 'your username is good';
} else {
    echo 'your username is invalid';
}

我不确定您是否希望它包含其他正则表达式信息,但您可以:

if (preg_match('/^\./', $username) || preg_match('/\.$/', $username) {
  echo 'invalid';
}
这将使。brew和brew。失败


我忘记了管道字符,请参阅Enessays答案以了解更简单的正确方法。

我不确定您是否希望它包含其他正则表达式信息,但您可以:

if (preg_match('/^\./', $username) || preg_match('/\.$/', $username) {
  echo 'invalid';
}
这将使。brew和brew。失败


我忘记了管道字符,请参阅Enessays答案以获得更简单的正确方法。

另外:
(^(\.[\d\w])?([\d\w]\)?$)
另外:
(^(\.[\d\w])?([\d\w]\)([\d\w]\?$)
这是有效的,但我失去了功能。我提供的正则表达式只允许字母数字字符和下划线。我希望最后一个正则表达式也这样做,并防止在字符串的开头和结尾出现点。@brewpixels是否允许正文中的alphaNum字符+下划线+点?是的,没错。但是alphaNum字符和下划线可以在正文之外。请尝试我的上一次编辑,如果它不起作用,我需要一些示例来处理!(快一点,我必须在30分钟xD后离开)这可以工作,但我失去了功能。我提供的正则表达式只允许字母数字字符和下划线。我希望最后一个正则表达式也这样做,并防止在字符串的开头和结尾出现点。@brewpixels是否允许正文中的alphaNum字符+下划线+点?是的,没错。但是alphaNum字符和下划线可以在正文之外。请尝试我的上一次编辑,如果它不起作用,我需要一些示例来处理!(快点,我30分钟后就得走了)