簡體   English   中英

PHP Regex任何字符

[英]PHP Regex Any Character

. php正則表達式中的字符接受所有字符,但換行符除外。 我可以用來接受所有字符,包括換行符嗎?

通常用於捕獲所有字符:

[\s\S]

您可以通過相同的方式使用“ Type-X + Non-Type-X”的任何其他組合:

[\d\D]
[\w\W]

但是[\\s\\S]被慣例認為是“真正的一切”的簡寫。

您也可以使用. 如果您通過"s"修飾符將正則表達式切換為“ dotall”(也稱為“單行”)模式。 有時,這不是可行的解決方案(例如,黑匣子中的動態正則表達式,或者如果您不想修改整個正則表達式)。 在這種情況下,無論正則表達式如何配置,其他替代方法都一樣。

. 表示“每個字符”的字符( 編輯 :OP已編輯)。 並且您需要將選項s添加到您的regexp中,例如:

preg_match("`(.+)`s", "\n");

 
 
 
 
  
  
  [.\\n]+
 
 
  

不行?

(.|\\n)+呢? 我測試了它,它似乎起作用了。

我很確定這是您所要求的字面解釋。

Dot的PHP手冊頁面指出:

如果設置了PCRE_DOTALL選項,則點也匹配換行符。

這里缺少重要的事情。 [\\s\\S]匹配一個字符,而換行符可以是一個字符序列。 (Windows使用兩個字符: \\r\\n 。)都不是. (使用DOT_ALL修飾符)或[\\s\\S]都不匹配換行符序列。 匹配任何字符或任何換行符的最佳方式是(.|\\R) ,“除換行符或換行符外的所有內容”。 \\R匹配\\n\\r\\r\\n

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM