Home > Backend Development > PHP Tutorial > 正则里面s包括回车吗?

正则里面s包括回车吗?

WBOY
Release: 2016-06-06 20:11:55
Original
1131 people have browsed it

文档上说\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>
Copy after login
Copy after login

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>
Copy after login
Copy after login

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>
Copy after login
Copy after login

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>
Copy after login
Copy after login

java都能匹配出来

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

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


  1. a ↩
Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template