如何解决正则表达式模式差异-“ *”和“ +”
| 我正在尝试将ѭ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”。我想这就是您要寻找的。
如果不是,则应首先定义必须匹配的字符串和可能不匹配的字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。