为了账号安全,请及时绑定邮箱和手机立即绑定

(.*?)这个匹配的是什么

(.*?)这个匹配的是什么

正在回答

5 回答

其实有两个plist,一个是SwiftWeather的,一个是SwiftWeatherTests里面的,你看下是不是写错了

0 回复 有任何疑惑可以回复我~

$subject = "abcaaaaaaaaaadef";

$pattern = '/a.*?d/';

preg_match($pattern, $subject, $matches);

print_r($matches); 

//在这种情况下,.*会一直匹配,加了?后,变成非贪婪模式,?后跟的是d,所以会匹配至d结束

//运行结果是

Array
(
    [0] => abcjhjkhhljkhd
)

加了()小括号之后,会再一次输出小括号中匹配的内容

$subject = "abcjhjkhhljkhdef";

$pattern = '/a(.*?)d/';

preg_match($pattern, $subject, $matches);

print_r($matches);

结果为:

Array
(
    [0] => abcjhjkhhljkhd
    [1] => bcjhjkhhljkh
)

我看的时候也被这个问题困扰了,不晓得现在的理解对不对,加油,共勉。

2 回复 有任何疑惑可以回复我~

.点号字符,  匹配任何单个字符(除换行符外)。

*号字符,匹配0或多次匹配,意思是要么不匹配,要么匹配多次,点号与星号.*在一起是匹配人任意数量的除换行符之外的字符。

?问号字符,作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。重要的是在量次后面改变其贪婪属性,前面的*是量次,且是贪婪属性,后面跟问号?,则变化成非贪婪属性,则尽可能少的匹配,也就是从之前的匹配任意数量的字符(仍然是换行符除外)变为了0次或一次匹配,匹配成功就一次,匹配失败就0次。

()圆括号,举例说明,eg: a(b)c,在这个例子中,用abcac来进行匹配的话,可以得到ac,abc两个结果,意思是小括号中的内容在能匹配的情况下是需要匹配的,匹配不到内容也可以跳过。

以上是我的理解,谢谢!

1 回复 有任何疑惑可以回复我~

两个字符之间的字符串或数字

0 回复 有任何疑惑可以回复我~

.点  匹配任何单个字符。例如正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配root。
* 匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。
? 匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP进阶篇
  • 参与学习       181679    人
  • 解答问题       2575    个

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

进入课程

(.*?)这个匹配的是什么

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信