当前位置: 首页 > 知识库问答 >
问题:

捕捉PHP方括号中的文本

巩光誉
2023-03-14

我需要一些方法来捕捉方括号中的文本。例如,以下字符串:

[这]是一个[测试]字符串,[吃]我的[短裤]

可用于创建以下数组:

Array ( 
     [0] => [This] 
     [1] => [test] 
     [2] => [eat] 
     [3] => [shorts] 
)

我有以下正则表达式/\[. *? \]/但它只捕获第一个实例,所以:

Array ( [0] => [This] )

如何获得所需的输出?注意,方括号不是嵌套的。


共有1个答案

淳于鹏
2023-03-14

用括号匹配所有字符串:

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[[^\]]*\]/", $text, $matches);
var_dump($matches[0]);

如果您想要不带括号的字符串:

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[([^\]]*)\]/", $text, $matches);
var_dump($matches[1]);

无括号匹配的替代、较慢版本(使用“*”而不是“[^]”):

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[(.*?)\]/", $text, $matches);
var_dump($matches[1]);
 类似资料:
  • 问题内容: 我需要某种方式来捕获方括号之间的文本。因此,例如,以下字符串: 可用于创建以下数组: 我有以下正则表达式,但它仅捕获第一个实例,因此: 如何获得所需的输出?请注意,方括号从不嵌套,因此不必担心。 问题答案: 匹配所有带括号的字符串: 如果要不带括号的字符串: 不带括号的替代版本,较慢的匹配版本(使用“ *”代替“ [^]”):

  • 4. 捕捉信号 4.1. 内核如何实现信号的捕捉 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。由于信号处理函数的代码是在用户空间的,处理过程比较复杂,举例如下: 用户程序注册了SIGQUIT信号的处理函数sighandler。 当前正在执行main函数,这时发生中断或异常切换到内核态。 在中断处理完毕后要返回用户态的main函数之前检查到有信号SIGQUIT递达

  • 在节点中。在js服务器上,捕获SIGTERM和捕获SIGINT有什么区别吗? 我认为进程不应该能够防止SIGINT关闭? 我是否能够捕获两个信号并阻止退出?我的实验表明答案是肯定的,但从我所读到的内容来看,SIGINT总是假设关闭一个进程。 或者我把SIGINT和SIGKILL混淆了?也许SIGKILL是我无法恢复的信号? 捕捉这些信号当然可以让我优雅地关机: 我想我把SIGINT和SIGKILL

  • 问题内容: 我有一个很大的数学表达式,必须动态创建。例如,一旦我已经解析了“东西”,结果就会像一个字符串:。 因此,为了计算该表达式的结果,我使用的是函数…… 这里的问题是,有时我会收到错误消息,说被零除,并且我不知道如何捕获该异常。我已经尝试过类似的事情: 要么: 但这行不通。因此,如何避免被零除的应用程序崩溃? 编辑: 首先,我想澄清一下:表达式是动态构建的,因此如果分母为零,我不能仅仅求值。

  • 问题内容: 提取括号之间的文本集的最佳/最有效方法是什么?假设我想以最有效的方式从字符串“忽略除此(文本)之外的所有内容”中获取字符串“ text”。 到目前为止,我想出的最好的办法是: 有一个更好的方法吗?我知道通常使用正则表达式的效率通常较低,但是除非我可以减少函数调用的次数,否则这也许是最好的方法?有什么想法吗? 问题答案: 我只是做一个正则表达式,并克服它。除非您进行了足够多的迭代以至于成

  • 本文向大家介绍Python的Django框架中从url中捕捉文本的方法,包括了Python的Django框架中从url中捕捉文本的方法的使用技巧和注意事项,需要的朋友参考一下 每个被捕获的参数将被作为纯Python字符串来发送,而不管正则表达式中的格式。 举个例子,在这行URLConf中: 尽管 \d{4} 将只匹配整数的字符串,但是参数 year 是作为字符串传至 views.year_arch