正则表达式 – PHP外观

前端之家收集整理的这篇文章主要介绍了正则表达式 – PHP外观前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个字符串,例如:

$foo = 'Hello __("How are you") I am __("very good thank you")'

我知道这是一个奇怪的字符串,但请跟我一起:P

我需要一个正则表达式来查找__之间的内容(“在这里查找内容”)
并把它放在一个数组中.

即正则表达式会找到“你好吗”和“非常好,谢谢你”.

解决方法

试试这个:

preg_match_all('/(?<=__\(").*?(?="\))/s',$foo,$matches);
print_r($matches);

意思是:

(?<=     # start positive look behind
  __\("  #   match the characters '__("'
)        # end positive look behind
.*?      # match any character and repeat it zero or more times,reluctantly
(?=      # start positive look ahead
  "\)    #   match the characters '")'
)        # end positive look ahead

编辑

而正如格雷格所说:有些人不太熟悉环顾四周,将它们排除在外可能更具可读性.然后匹配所有内容:__(“,字符串和”)并在括号内包装与字符串匹配的正则表达式.* ?,以仅捕获这些字符.然后你需要通过$matches [1]获得你的比赛.演示:

preg_match_all('/__\("(.*?)"\)/',$matches);
print_r($matches[1]);

猜你在找的正则表达式相关文章