我正在尝试使用正则表达式在PHP中捕获以下内容:
/ *
名称:测试
描述:我的测试
* /
我已经尝试过这里的代码:Match everything inbetween two tags with Regular Expressions?但它没有捕获新行。
编辑:我使用了下面的常规单行,但它会在看到换行符后立即停止工作
EDIT2:我想要包括我在一个包含大量换行符的大块文本上运行此脚本。我确信我们需要使用*因为我不确定换行次数。
/ *(。*?)* /
TIA
答案 0 :(得分:2)
使用标志s
(s代表dotall)
/*(.*?)*/s
这个标志让点也匹配换行符(没有这个标志,它不会)
答案 1 :(得分:2)
.
与默认情况下的换行符不匹配。你需要/ s修饰符(正则结束后 ):
preg_match("#/[*](.*?)[*]/#s", ...
另见上文,您需要转义*
(使用反斜杠或周围[]),如果您想匹配/
,还需要另外一个字符将其括起来。我已经用#代替/
如有疑问,请务必添加/ims
。无论如何不使用^ $
或.
和字母都不会导致性能下降。