Php:使用preg_match

时间:2015-06-27 20:06:04

标签: php preg-match

我正在试验preg_match,我想出了这一行,以帮助我找到页面上的第一笔金额:

preg_match('/\$(.*)/', $content, $USDmatch);

哪种方式很棒但是我定位的网站在其源代码中使用了这个代码,而不是他们使用的$代码$。我该如何搜索?

1 个答案:

答案 0 :(得分:0)

就个人而言 - 因为我不是正则表达式的专家,而且看起来不像,你也不是这样的:

$result = preg_match("/((\$|$)(\S*))/g", $content, $USDmatch );

这是做什么的? 良好:

  • /((\ $ | $)(\ S *))/ G
  • 第一个捕获组((\ $ | $)(\ S *))
  • 第二个捕获组(\ $ | $
  • 第一选择:\ $
  • \ $匹配字符$ literally
  • 第二选择:$
  • $字面匹配字符$
  • 第三个捕获组(\ S *)
  • \ S *匹配任何非空格字符[^ \ r \ n \ t \ f]
  • 量词:*在零和无限次之间,尽可能多次,根据需要回馈[贪心]

    • g modifier:global。所有比赛(首场比赛时不返回)

/g修饰符并不是严格需要的,但是我在这里添加了它来搜索所有出现的内容,而不是在第一次出现时返回。根据需要进行调整。

所以使用上面的代码,下面的例子我们有:

$content = "e gnerij $100 gnerjingeijrn gijern jiner e r $100 begrbrtbtr erh jerng knrj gnrjk "

 $result = preg_match("/((\$|$)(\S*))/g", $content, $USDmatch );

从这个: $result返回TRUE,(两个发现,尽管这超出了Preg_match的使用范围)

我强烈建议您使用http://www.regex101.com来探索正则表达式的混乱世界。