我无法在Globiflow(对于Podio)中使用preg_match_all(),因为它们坚持使用preg_match_gf(),它具有与常规preg_match()类似的功能。我有以下代码:
preg_match_gf("/<zestimate><amount currency=\"USD\">(.*?)
<\/amount>/ism",*search_result_below*, 1)
我在搜索以下信息时搜索了一些随机属性(我已经大大简化了):
<comparables>
<comp score="5.0">
<zpid>########</zpid>
<zestimate>
<amount currency="USD">832447</amount>
</zestimate>
</comp>
<comp score="11.0">
<zpid>########</zpid>
<zestimate>
<amount currency="USD">526855</amount>
</zestimate>
</comp>
<comp score="2.0">
<zpid>########</zpid>
<zestimate>
<amount currency="USD">709637</amount>
</zestimate>
</comp>
<comp score="6.0">
<zpid>########</zpid>
<zestimate>
<amount currency="USD">607666</amount>
</zestimate>
</comp>
<comp score="8.0">
<zpid>########</zpid>
<zestimate>
<amount currency="USD">631700</amount>
</zestimate>
</comp>
</comparables>
我希望能够为每个属性选择<amount currency="USD">
的每个实例,因为他们将通过自己的计算填充自己的字段。 <comp score="#.0">
随每个查询而变化,行位置也是如此。我无法使用print
或echo
,因为Globiflow认为它们是非法运营商。
答案 0 :(得分:4)
您还可以使用preg_match_all_gf来获取每个金额,例如:
preg_match_all_gf('/<amount currency="USD">(.*?)<\/amount>/ism', [xml-token],1)
preg_match_all_gf('/<amount currency="USD">(.*?)<\/amount>/ism', [xml-token],2)
preg_match_all_gf('/<amount currency="USD">(.*?)<\/amount>/ism', [xml-token],3)
等
答案 1 :(得分:3)
Globiflow提供了一些您可能已经看过的regex和parsing text from Podio的支持文档。还有一些有用的工具链接在那里,用于构建/测试可能有用的正则表达式。可以找到另一个工具here。
关于Globiflow中preg_match_all
缺乏支持或可能的替代方案,您可以尝试与tech support directly联系。尽管有关构建正则表达式的帮助超出了它们的范围,但它们应该能够告诉您是否支持全局匹配正则表达式的方法。
答案 2 :(得分:2)
我想在这里为你添加一些反馈,Josh。
使用PHP计算时,使用Globiflow的函数数量有限。 Globiflow有自己的帮助手册,其中包含一些非常有用的链接,可以帮助您解决计算问题。
&#34;使用PHP计算&#34;为您提供创建计算时可以使用的所有PHP函数的列表,
&#34; PHP计算&amp;正则表达式示例&#34;显示一些&#34;现实生活&#34;其他Globiflow成员使用的示例和&#34; Podiing Text in Podio with Globiflow&#34;通过对preg_match_gf
函数中返回内容的完整解释,您可以进一步了解所查找的信息。
供参考,以下是文档的链接
globiflow.com/help/using-php-calculations.php