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
带or操作的PHP正则表达式_Php_Regex_Wildcard - Fatal编程技术网

带or操作的PHP正则表达式

带or操作的PHP正则表达式,php,regex,wildcard,Php,Regex,Wildcard,我想在以下字符串上使用正则表达式: 1-* or *-2. 这就是我到目前为止的想法: "/(.*\-2)||(1\-.*)/" 但它似乎不起作用——不管输入字符串是什么,它每次都返回true 如何创建正则表达式来匹配这些字符串?试试这个 "/(.+-\2)|(\1-.+)/" 试试这个 "/(.+-\2)|(\1-.+)/" 尝试此操作您需要添加“^”和“$”以匹配整个字符串: /^(1-0|0-2)$/ 或: 选择适合您需要的内容尝试此操作,您需要添加^1和$2以匹配整个字符串:

我想在以下字符串上使用正则表达式:

1-* or *-2.
这就是我到目前为止的想法:

"/(.*\-2)||(1\-.*)/"
但它似乎不起作用——不管输入字符串是什么,它每次都返回true

如何创建正则表达式来匹配这些字符串?

试试这个

"/(.+-\2)|(\1-.+)/"
试试这个

"/(.+-\2)|(\1-.+)/"

尝试此操作您需要添加“^”和“$”以匹配整个字符串:

/^(1-0|0-2)$/
或:


选择适合您需要的内容

尝试此操作,您需要添加^1和$2以匹配整个字符串:

/^(1-0|0-2)$/
或:

选择适合您需要的选项

试试这个(简单化的)版本:

如果需要更具体的匹配,请在相应的位置添加
[0-9]
,也可以添加另一个锚(
^$

试试这个(过于简单的)版本:

如果需要更具体的匹配,请在相应的位置添加
[0-9]
,也可以添加另一个锚(
^$


不,这返回false:preg_match(“/(.1-)/”,“1-0”)不,这返回false:preg_match(/(.1-)/”,“1-0”)不,这返回false:preg_match(“/(.1-)/”,“1-0”),这也返回false:preg_match(/(.1-)$/”,“1-0”),这返回false:preg_match(“/(.9*)-”,“1-9-”,“1-0”)和“1-0”)我想匹配;我希望2-0和0-1不及格。你前面的第二个答案行得通。非常感谢。你说:/^(1-.*.*.*-2)$/不,这个返回false:preg_match(“/^(+-\2)|”(\1-.+)$/”,“1-0”),这个也返回false:preg_match([1-9*]-[*1-9])$/”,“1-0”),我希望1-0和0-2匹配;我希望2-0和0-1不及格。你前面的第二个答案行得通。非常感谢。你这样说:/^(1-.*.*-2)$/我喜欢你以前的答案;它简单而优雅:/^1-|-2$/@MrGoobri:但不正确;)它将分组为
/^1(-)2$/
,因此只匹配字符串
1-2
,这将返回true:preg_match(“/^1-|-2$/”,“3-2”)@MrGoobri:oh right。我混淆了正则表达式中的优先规则:-$我喜欢你以前的答案;它简单而优雅:/^1-|-2$/@MrGoobri:但不正确;)它将分组为
/^1(-)2$/
,因此只匹配字符串
1-2
,这将返回true:preg_match(“/^1-|-2$/”,“3-2”)@MrGoobri:oh right。我混淆了正则表达式中的优先规则:-$
/(^1-[0-9]$|^[0-9]-2$)/