Php “之间的一切”;[答复]";并提取回复号码

Php “之间的一切”;[答复]";并提取回复号码,php,regex,extract,extraction,text-extraction,Php,Regex,Extract,Extraction,Text Extraction,请看下面的情况 [reply="292"] Text Here [/reply] 我想得到的是reply=“NUMBERS”中引用的数字。我想将它提取到一个变量中,并将[reply=“NUMBER”]这段文字[/reply]提取到另一个变量中 所以对于这个例子: [reply="292"] Text Here [/reply] 我想提取回复号码:292和reply标记之间的文本:此处的文本 我试过这个: \[reply\=\"]([A-Z]\w)\[\/reply] 但这只在reply标记

请看下面的情况

[reply="292"] Text Here [/reply]
我想得到的是
reply=“NUMBERS”
中引用的数字。我想将它提取到一个变量中,并将
[reply=“NUMBER”]这段文字[/reply]
提取到另一个变量中

所以对于这个例子:

[reply="292"] Text Here [/reply]
我想提取回复号码:
292
reply
标记之间的文本:
此处的文本

我试过这个:

\[reply\=\"]([A-Z]\w)\[\/reply]
但这只在
reply
标记不起作用之前有效。我该怎么做呢?

简单

\[reply\=\"(\d+)\"](.*?)\[\/reply]
解释
  • 数字的
    \d
  • +
    用于指定字符的一次或多次出现
  • [\w\s]
    用于word和空格中的任何字符(
    \s
  • 然后将其应用于PHP,如下所示:

    <?php                                                                       
      $str = "[reply=\"292\"] Text Here [/reply]";
      preg_match('/\[reply\=\"(\d+)\"]([\w\s]+)\[\/reply]/', $str, $re);
      print_r($re[1]); // printing group 1, the reply number
      print_r($re[2]); // printing group 2, the text
    ?>
    
    
    
    重要的!! 只获取组值,而不是全部。无论如何,你只需要一部分。

    简单

    \[reply\=\"(\d+)\"](.*?)\[\/reply]
    
    解释
  • 数字的
    \d
  • +
    用于指定字符的一次或多次出现
  • [\w\s]
    用于word和空格中的任何字符(
    \s
  • 然后将其应用于PHP,如下所示:

    <?php                                                                       
      $str = "[reply=\"292\"] Text Here [/reply]";
      preg_match('/\[reply\=\"(\d+)\"]([\w\s]+)\[\/reply]/', $str, $re);
      print_r($re[1]); // printing group 1, the reply number
      print_r($re[2]); // printing group 2, the text
    ?>
    
    
    
    重要的!! 只获取组值,而不是全部。您只需要其中的一部分。

    我保留了泛型(.*),但您可以指定类似decimal(\d+)的类型

    php:

    javascript:

    s = '[reply="292"] Text Here [/reply]'
    s.match(/\[reply=\"(.*)\"\](.*)\[\/reply\]/)
    //["[reply="292"] Text Here [/reply]", "292", " Text Here "]
    
    我保留了泛型(.*),但您可以指定类似decimal(\d+)的类型

    php:

    javascript:

    s = '[reply="292"] Text Here [/reply]'
    s.match(/\[reply=\"(.*)\"\](.*)\[\/reply\]/)
    //["[reply="292"] Text Here [/reply]", "292", " Text Here "]
    


    嗨,谢谢。抱歉,这可能会让人困惑,但它不适用于除数字和字母(文本)以外的任何其他内容。抱歉,我在StackOverflow中每次回答时都对我的答案进行迭代更新。请查看最新更新。我确信它是完美的不幸的是,除了字母和数字之外,它对任何东西都不起作用。我认为它就是这个意思。这就是我这么做的原因。我可以让它匹配所有的东西。没关系,谢谢。抱歉,这可能会让人困惑,但它不适用于除数字和字母(文本)以外的任何其他内容。抱歉,我在StackOverflow中每次回答时都对我的答案进行迭代更新。请查看最新更新。我确信它是完美的不幸的是,除了字母和数字之外,它对任何东西都不起作用。我认为它就是这个意思。这就是我这么做的原因。我可以让它匹配所有的东西。别在意这个网站不是/不应该是一个个人正则表达式生成器。而且,在你的管辖范围内冒充他人并不酷/可能是非法的。@LightnessRacesinOrbit你在说什么?你是真正的泰勒·斯威夫特吗?这个celebrity@TaylorSwift:很好。这个网站不是/不应该是一个个人正则表达式生成器。而且,在你的管辖范围内,模仿他人并不酷/可能是非法的。@LightnessRacesinOrbit你在说什么?你是真正的泰勒·斯威夫特吗?这个celebrity@TaylorSwift:很好。谢谢,适用于数字、字母和几乎所有的东西。谢谢,适用于数字、字母和几乎所有的东西。