Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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

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,请先看我的字符串: $a = "[ child : parent ]"; 如何检测该模式是: [(optional space)word or character(optional space) : (optional space)word or character(optional space)] 我不确定特定于php的regex版本,但这应该可以: \[ ?\w+ ? : ?\w+ ?\] 是一个我过去用来查找所需模式的正则表达式的站点。我不确定特定于php的regex版本,但这应

请先看我的字符串:

$a = "[ child : parent ]";
如何检测该模式是:

 [(optional space)word or character(optional space) : (optional space)word or character(optional space)]

我不确定特定于php的regex版本,但这应该可以:

\[ ?\w+ ? :  ?\w+ ?\]

是一个我过去用来查找所需模式的正则表达式的站点。

我不确定特定于php的regex版本,但这应该可以:

\[ ?\w+ ? :  ?\w+ ?\]

是一个我过去用于查找所需模式的正则表达式的网站。

使用此正则表达式
\[\s*\w+\s*:\s*\w+\s*\]

使用此正则表达式
\[\s*\w+\s*:\s*\w+\s*\]
您可以在PHP中捕捉到以下内容:

正则表达式是
/\[*\w+*:*\w+*]/

您可以编写如下代码,以查看它是否匹配

if (preg_match('/regex/', $string)) {
    // do things
}
正则表达式的解释

  • 在打开的括号前有一个反斜杠(
    \
    ),因为
    [
    在正则表达式中有特殊含义。反斜杠 防止其特殊含义被使用
  • 星号(
    *
    )与前面的字符表达式中的0个或多个匹配 大小写,它匹配0个或多个空格。如果改为使用 表达式
    \s*
    ,它将匹配0个或多个空格字符 (空格、制表符、换行符)。最后,如果希望它匹配0或1 对于上一个字符,您将使用
    而不是
    *
  • 加号(
    +
    )与前面的一个或多个字符表达式匹配。
    \w
    字符表达式与字母、数字或下划线匹配。如果不希望下划线匹配,则应改为使用字符类。例如,可以使用
    [a-Za-z0-9]

您可以在和中找到有关正则表达式的更多信息。您可以在PHP中找到以下内容:

正则表达式是
/\[*\w+*:*\w+*]/

您可以编写如下代码,以查看它是否匹配

if (preg_match('/regex/', $string)) {
    // do things
}
正则表达式的解释

  • 在打开的括号前有一个反斜杠(
    \
    ),因为
    [
    在正则表达式中有特殊含义。反斜杠 防止其特殊含义被使用
  • 星号(
    *
    )与前面的字符表达式中的0个或多个匹配 大小写,它匹配0个或多个空格。如果改为使用 表达式
    \s*
    ,它将匹配0个或多个空格字符 (空格、制表符、换行符)。最后,如果希望它匹配0或1 对于上一个字符,您将使用
    而不是
    *
  • 加号(
    +
    )与前面的一个或多个字符表达式匹配。
    \w
    字符表达式与字母、数字或下划线匹配。如果不希望下划线匹配,则应改为使用字符类。例如,可以使用
    [a-Za-z0-9]

您可以在和找到有关正则表达式的更多信息,我可能会这样做


preg\u match('/^\[\s?\w+\s+:\s+\w+\s?\]$/',$string)

我可能会这样做


preg\u match('/^\[\s?\w+\s+:\s+\w+\s?\]$/',$string)

从您的示例文本中,我想说您指的是人类单词,而不是
\w
正则词

演示说明:


$matches
将保存这两个值,使用
var\u dump($matches);

从您的示例文本中,我认为您指的是一个人类单词,而不是
\w
正则词

演示说明:


<匹配> <代码> >将保存两个值,测试用<代码> ValthDoIP($匹配);<代码> < /p>代码>字或字符< /代码> -你到底是什么意思?<代码> *$$++{}[],‘//,< /代码>考虑“单词或字符”?单词可以包含什么字符?<代码>单词或字符< /代码> -你到底是什么意思?<代码> *$y$+{{}[]“/”、“< /代码>”考虑“单词或字符”?word可以包含什么类型的字符?您知道
\s
还包括新行字符等,对吗?您知道
\s
还包括新行字符等,对吗?
\s+
不匹配可选空格。相反,它匹配一个或多个空格。@corvec这是因为后面有可选空格通过一个文本空间,所以我假设1个或多个。啊,我认为解释是有意义的。
\s+
与可选空间不匹配。相反,它与一个或多个空间匹配。@corvec这是因为他有一个可选空间后跟一个文本空间,所以我假设1个或多个。啊,我认为解释是有意义的。非常感谢。这是准确的这正是我想要的谢谢这正是我想要的