亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

分隔符不得為字母數字或反斜杠及preg_Match。

分隔符不得為字母數字或反斜杠及preg_Match。

分隔符不得為字母數字或反斜杠及preg_Match。我有個密碼:$string1 = "My name is 'Kate' and im fine"; $pattern = "My name is '(.*)' and im fine";  preg_match($pattern , $string1, $matches);echo $matches[1];當我運行時,它返回以下錯誤:警告:preg_Match()[Function.preg-Match]:分隔符不能是字母數字或反斜杠
查看完整描述

3 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

您需要為您的模式設置一個分隔符。應該在模式的開頭和結尾添加如下:

$pattern = "/My name is '(.*)' and im fine/";  // With / as a delimeter


查看完整回答
反對 回復 2019-07-04
?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

解決方案(其他答案沒有提到-至少在我編寫這篇文章時是這樣)是,當PHP引用分隔符時,它不是指您在代碼中看到的分隔符(它們是引號),而是指字符串中的下一個字符。(事實上,我從未在任何文檔中看到過這一點:您必須在示例中看到它。)因此,與其使用像許多其他語言一樣的正則表達式語法,不如:

/something/

PHP使用字符串,然后在字符串中查找另一個劃界者:

'/something/'

分隔符PHP所指的是/字符,而不是一對'人物。所以如果你寫'something',PHP將采取s作為指定的分隔符,并抱怨不允許使用字母數字字符作為分隔符。

因此,如果您想傳遞(例如)一個i為了顯示您想要一個大小寫-無意義的匹配,您可以在字符串中傳遞它,但在正則表達式分隔符之外傳遞它:

'/something/i'

如果你想用別的東西/作為分隔符,您可以這樣做,例如,如果您正在匹配一個URL,并且不想轉義所有斜杠:

'~something~'


查看完整回答
反對 回復 2019-07-04
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

必須為表達式指定分隔符。分隔符是在表達式的開頭和結尾使用的一個特殊字符,用于表示表達式的哪個部分。這允許您使用修飾符和解釋器來知道哪些是表達式,哪些是修飾符。正如錯誤消息所述,分隔符不能是反斜杠,因為反斜杠是轉義字符。

$pattern = "/My name is '(.*)' and im fine/";

在相同的示例下面,但是使用i要匹配而不區分大小寫的修飾符。

$pattern = "/My name is '(.*)' and im fine/i";

如您所見,i在斜杠之外,因此被解釋為修飾符。

還請記住,如果使用正斜杠字符(/)作為分隔符,則必須避免在正則表達式中進一步使用/(如果存在的話)。


查看完整回答
反對 回復 2019-07-04
  • 3 回答
  • 0 關注
  • 858 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號