首頁 > 後端開發 > php教程 > 正则里面s包括回车吗?

正则里面s包括回车吗?

WBOY
發布: 2016-06-06 20:11:55
原創
1131 人瀏覽過

文档上说\s表示空白字符 回车算不算空白字符呢
用实际例子测试了一下,不同的环境结果各不相同

测试文件内容
test.txt
PH
P and JA
VA

<code>$text=file_get_contents('test.txt');



#print $text;


preg_match("/PH\sP/s",$text,$match);
print_r($match);

preg_match("/JA\sVA/s",$text,$match);

print_r($match);
</code>
登入後複製
登入後複製

php匹配出来为空

<code>Pattern php =  Pattern.compile("PH\\sP",Pattern.DOTALL);
Pattern java =  Pattern.compile("JA\\sVA",Pattern.DOTALL);
  BufferedReader  in = new BufferedReader(new FileReader("test.txt"));
   StringBuffer  sb=new StringBuffer ();
    String s;

    while ((s = in.readLine()) != null)     {
    sb.append(s);
 }

Matcher m = php.matcher(sb);

while(m.find()) {

      System.out.println(m.group());
}

  m = java.matcher(sb);

while(m.find()) {

      System.out.println(m.group());
}
</code>
登入後複製
登入後複製

java都能匹配出来

回复内容:

文档上说\s表示空白字符 回车算不算空白字符呢
用实际例子测试了一下,不同的环境结果各不相同

测试文件内容
test.txt
PH
P and JA
VA

<code>$text=file_get_contents('test.txt');



#print $text;


preg_match("/PH\sP/s",$text,$match);
print_r($match);

preg_match("/JA\sVA/s",$text,$match);

print_r($match);
</code>
登入後複製
登入後複製

php匹配出来为空

<code>Pattern php =  Pattern.compile("PH\\sP",Pattern.DOTALL);
Pattern java =  Pattern.compile("JA\\sVA",Pattern.DOTALL);
  BufferedReader  in = new BufferedReader(new FileReader("test.txt"));
   StringBuffer  sb=new StringBuffer ();
    String s;

    while ((s = in.readLine()) != null)     {
    sb.append(s);
 }

Matcher m = php.matcher(sb);

while(m.find()) {

      System.out.println(m.group());
}

  m = java.matcher(sb);

while(m.find()) {

      System.out.println(m.group());
}
</code>
登入後複製
登入後複製

java都能匹配出来

回车是/r/n,不是空白,要在/s模式下就包括了,preg_match('/lalla /s',$youString),s 模式中的圆点元字符(.)匹配所有的字符,包括换行符

如果设置了s这个修饰符,模式中的"点号"元字符匹配所有字符,包含换行符。如果没有这个 修饰符,点号不匹配换行符。这个修饰符等同于 perl 中的/s修饰符。 一个取反字符类比如 1 总是匹配换行符,而不依赖于s这个修饰符的设置。


  1. a ↩
相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板