Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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,这简直快把我逼疯了 这就是我想要实现的目标: 第1部分:伪元素必须以[a-zA-Z0-9]开头,然后它可以有一个[.\u-]或一个空格 第2部分:必须以[a-zA-Z0-9] 第1部分可以永远重复,但必须以第2部分结束 它尝试了无数种方法,但从未奏效。使用下面的代码,如果我使用“Test_Test”(带两个“”),它会在不应该的时候工作。请帮忙 <!doctype html> 首先,您必须将-和转义为[\.\u\-],因为它是一个特殊符号,然后尝试在正则表达式前面添加

这简直快把我逼疯了

这就是我想要实现的目标:

第1部分:伪元素必须以
[a-zA-Z0-9]
开头,然后它可以有一个
[.\u-]
或一个
空格

第2部分:必须以
[a-zA-Z0-9]

第1部分可以永远重复,但必须以第2部分结束

它尝试了无数种方法,但从未奏效。使用下面的代码,如果我使用“Test_Test”(带两个“”),它会在不应该的时候工作。请帮忙

<!doctype html>





首先,您必须将
-
转义为
[\.\u\-]
,因为它是一个特殊符号,然后尝试在正则表达式前面添加
^
符号

尝试:

/^([[:alnum:]]+[._ -]?)+[[:alnum:]]+$/
alnum
是字母和数字的别名。

试试这个:

^([a-zA-Z0-9]+[._-]{0,1})+[A-Za-z0-9]+$
这个怎么样

/^([a-zA-Z0-9]+[._ -]?)+[a-zA-Z0-9]$/
alnum的开头和结尾在这里是显而易见的,但内部部分基本上强制执行任何
[.\u-]
将被“NOT
[.\u-]
包围。”


这就是你想要的吗?

你的意思是:“那么它可以有一个
[.\u-]
或一个空格吗?不,
在字符类中不是一个特殊的符号,
-
只有在字符之间才是特殊的,而不是在字符的结尾或开头。谢谢你这么做。我不明白它为什么需要这样做。”^“当我说它应该至少有一个字母,然后是零或一个符号时,你不需要切换
-
,或者它工作是因为ASCII表中的hypen前面有空格吗?如果它在
[]
括号中,它可以在任何位置。但是你不需要用
-
来表示一个范围吗?”,不是字符
-
-
必须在开头、结尾或转义(如果按字面理解)
[.-]
[-.-]
[.-]
就可以了。你可以用
代替
{0,1}
:)非常感谢,我已经有一段时间没有做过这种事情了
/^([a-zA-Z0-9]+[._ -]?)+[a-zA-Z0-9]$/