正则表达式w和d的疑惑

WBOY
リリース: 2016-06-06 20:09:21
オリジナル
1488 人が閲覧しました

<code>$string='April15,2003';
$pattern='/(\w+)(\d+),(\d+)/i';
$replacement='${1},${3}';
echo preg_replace($pattern,$replacement,$string);</code>
ログイン後にコピー
ログイン後にコピー

?>
结果为April1,2003
为什么 (w+)匹配了April 1,而没有匹配April 15
是不是因为:w本身会匹配数字,如果把5也匹配了,那么d就没有可以匹配的东西了

回复内容:

<code>$string='April15,2003';
$pattern='/(\w+)(\d+),(\d+)/i';
$replacement='${1},${3}';
echo preg_replace($pattern,$replacement,$string);</code>
ログイン後にコピー
ログイン後にコピー

?>
结果为April1,2003
为什么 (w+)匹配了April 1,而没有匹配April 15
是不是因为:w本身会匹配数字,如果把5也匹配了,那么d就没有可以匹配的东西了

w+能够完整匹配April15,但是你在w+后面又写了d+,为了能够匹配你定义的规则,April1给了w,5给了d。
$pattern='([a-z]+)(\d+),(\d{4})/i';
是符合要求的

$pattern='/(w+)(d{1,2{+),(d+)/i';这样子了是不是楼主想要的日期了

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート