簡體   English   中英

RegEx模式以匹配兩個字符之間的字符串,但排除字符

[英]RegEx pattern to match a string between two characters, but exclude the characters

大家問候,

我還有另一個RegEx問題。 我已經進行了數小時的搜索,但顯然我錯過了我需要的一篇關鍵文章。

我需要在PHP中使用preg_match()來匹配括號之間的字符串,但結果中沒有括號。 我已經看到了類似問題的示例,但是我相信我的問題有所不同,因為它實際上是我要處理的括號,它是RegEx中的一個元字符。 有什么好處嗎?

無論如何...

字符串是:

     "200 result=1 (SIP/100-00000033)"

當前代碼是:

preg_match("/\((.*)\)/s", $res, $matches);

$ matches [0]變為:

     "(SIP/100-00000033)"

我想要的是:

     "SIP/100-00000033"

我很抱歉,因為我敢肯定這很簡單,但我沒有把握。 有人願意教育我嗎?

先感謝您!!

嗯,所有這些都指的是在正則表達式中對項目進行分組的方式。 您的解決方案實際上是正確的,只是您使用了錯誤的匹配索引。 嘗試:

$matches[1]

如果那以某種方式給您帶來了錯誤,請在發布后再解決。

如果您確實希望完全匹配排除括號,則可以使用先行和后行斷言

preg_match('/(?<=\().*(?=\))/s', $res, $matches);

暫無
暫無

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

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