正则表达式模式差异-“ *”和“ +”

问题描述

| 我正在尝试将ѭ0替换为
inch
,即
12\" wall
会变成
12 inch wall
我有两种工作模式:
/\\b([0-9]+)\"/ -> preg_replace(\'/\\b([0-9]+)\"/\',\'$1 inch \',$string)
/\\b([0-9]*)\"/ -> preg_replace(\'/\\b([0-9]*)\"/\',$string)
那么它们之间有什么区别,为什么
+
*
以相同的方式工作? 干杯, /马辛     

解决方法

        +表示找到前一个字符/组1次或更多次。 *表示可以任意次数(0-无穷大)找到前一个字符/组     ,        “ 8”要求单词边界和“ 0”之间至少要有一位数字,而“ 10”也要接受零数字。因此,第一个不匹配空格,后跟“ 0”,第二个不匹配。 如果要同时对
new 15 \" tv
new 15\" tv
进行匹配,则需要与可能存在或可能不存在的空格字符匹配:
/\\b([0-9]+)\\s?\"/
这与单词边界匹配,后跟一个序列(一个或多个)数字,可选地后面跟一个空格(或制表符),再跟一个“ 0”。我想这就是您要寻找的。 如果不是,则应首先定义必须匹配的字符串和可能不匹配的字符串。