【发布时间】:2018-10-16 11:46:34
【问题描述】:
我正在尝试匹配 svg 文件的 svg 标签中的高度字段,看起来像这样(多行):
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
id="svg2"
height="1052.36220472"
width="744.094488189">
这个正则表达式几乎给了我我想要的:
/(<svg[^<>]*height=")(\d*\.\d*)("[^<>]*>)/ms
我只想匹配高度的浮点值 (1052.36220472),所以前瞻/后视似乎是可行的方法,但我不能使用非固定宽度后视,所以
/(?<=<svg[^<>]*height=")(\d*\.\d*)(?="[^<>]*>)/ms
不起作用 - 我能做什么?
我想在 php 中通过 preg_replace() 函数使用 match 进行替换。
【问题讨论】:
-
使用
/(<svg[^<>]*height=")(\d*\.\d*)("[^<>]*>)/时只需访问第二组值。如果它是用 Swift 编写的,请参阅this post。 -
它是什么语言或工具?
-
打算在 php 中使用 preg_replace() 函数,将其添加到帖子中。
-
使用
\K然后:<svg[^<>]*height="\K[^"]* -
当你说'只有浮点值'时,你的意思是小数点后的数字吗?
标签: php regex regex-lookarounds