php 正则匹配换行段落,PHP和JavaScript正则匹配所有字符(包括换行符)的差异

在PHP和JavaScript中,正则表达式匹配所有字符(包含换行符)是不一样的。

假设有这样的字符串:

Hello,

PHP,

JavaScript

现在,我们要从里面中找出后面两行,也就是多行查找。

1 PHP实现

在PHP中,这样写:

$str = 'Hello,

PHP,

JavaScript';

$find = '';

preg_match('/PHP.*?Script/is', $str, $find);

print_r($find[0]);

其中,

i标识忽略大小写。

s就表示点号元字符匹配所有字符,包含换行符。如果没有这个修饰符,点号不匹配换行符。

2 JavaScript实现

JavaScript中只有四个模式修饰符:g、i、m、y。

这里,i标识也是忽略大小写的作用。

但是并没有如s的修饰符,也就是说,JavaScript中点号不匹配换行符。

那怎么办?

办法是有的,就是把点号换成[\s\S]。

和PHP同等功能的代码如下:

var str = "Hello,\n\

PHP,\n\

JavaScript";

var find = [];

find = str.match(/PHP[\s\S]*?Script/ig);

console.log(find[0]);

当然,这个JS中的正则表达式,直接搬到PHP中是可以直接用的。

参考地址:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值