比赛的一部分。怎么全部找?
Part of match in match. How to find all?
我正在寻找文档中的所有变量并发现不需要的功能。期间:
$from = "(some txt)$aaa$bbb(another txt)";
preg_match_all("/[$]([a-zA-Z_]{1})([a-zA-Z0-9_]*?)(\W)/", $from, $matches);
脚本 return 只有 $aaa 作为匹配而不是 $bbb。我不知道如何解决。请帮助:)
这是因为正则表达式末尾的 none 单词标记使您的正则表达式匹配 $aaa$
(\W
匹配最后一个 $)。对于这种行为的拒绝,你可以把 \W
正面看 ahead.Also 你可以把 $
和 \W
之间的所有正则表达式放在一组中:
/$([a-zA-Z_][a-zA-Z0-9_]*)(?=\W)/
我正在寻找文档中的所有变量并发现不需要的功能。期间:
$from = "(some txt)$aaa$bbb(another txt)";
preg_match_all("/[$]([a-zA-Z_]{1})([a-zA-Z0-9_]*?)(\W)/", $from, $matches);
脚本 return 只有 $aaa 作为匹配而不是 $bbb。我不知道如何解决。请帮助:)
这是因为正则表达式末尾的 none 单词标记使您的正则表达式匹配 $aaa$
(\W
匹配最后一个 $)。对于这种行为的拒绝,你可以把 \W
正面看 ahead.Also 你可以把 $
和 \W
之间的所有正则表达式放在一组中:
/$([a-zA-Z_][a-zA-Z0-9_]*)(?=\W)/