【发布时间】:2017-01-19 11:11:11
【问题描述】:
我在让正则表达式工作以在整个字符串中进行一些替换时遇到很多问题。
我需要找到并替换<sup> 标记中的所有数字(并且仅是数字),并将它们中的每一个都包含在三个花括号中(即{{{1}}})。它们可以以多种书面方式出现,例如:
<sup>1</sup>
<sup>1, 2</sup>
<sup>1, 2, 3</sup>
<sup>1, 2, 3\-4</sup>
<sup>1, 2, 3- 4</sup>
这些示例的预期结果应该类似于:
<sup>{{{1}}}</sup>
<sup>{{{1}}}, {{{2}}}</sup>
<sup>{{{1}}}, {{{2}}}, {{{3}}}</sup>
<sup>{{{1}}}, {{{2}}}, {{{3}}}\-{{{4}}}</sup>
<sup>{{{1}}}, {{{2}}}, {{{3}}}- {{{4}}}</sup>
可悲的是,我尝试了很多东西,但无济于事。一个例子:
#<sup>([^<\d]*)(\d+)([^<]*)</sup>#
它适用于<sup>123</sup> 示例,并将第一个数字匹配到其他示例中,但在第一个之后它不会得到任何东西。
任何帮助和/或线索将不胜感激。
提前致谢!
【问题讨论】:
-
好,你有没有尝试过具体的?
-
可悲的是,我尝试了很多东西,但无济于事。一个示例:
#<sup>([^<\d]*)(\d+)([^<]*)</sup>#将与<sup>123</sup>示例一起使用,并将第一个数字匹配到其他示例中,但在第一个之后它不会得到任何东西。 -
那么有一个问题:可以嵌套
sup标签吗?
标签: php regex preg-replace