簡體   English   中英

匹配單詞,然后在帶有正則表達式的PHP中分隔符之間

[英]Matching Word, then between delimiters in PHP With Regular Expression

在編寫正則表達式時遇到一些困難,它將滿足我的需求。 基本上,我通過一個包含數千行文本的文件進行解析,並用該行查找任何內容:

考試:

匹配的文本將始終采用以下格式:

考試:(測試字符串)多余的文字

所以我想做的是在EXAM:上進行匹配,然后插入括號內的所有內容。

我目前的表情:

/^.+?\EXAM:(.+)$/is 

在EXAM:之后插入所有內容,該功能不適用於此應用程序。

應該這樣做:

(?<=EXAM: \()([^)]+)

工作正則表達式示例:

http://regex101.com/r/nD3sQ2

您可以使用/EXAM:\\s*\\(([^)]+)\\)/i

if(preg_match("/EXAM:\s*\(([^)]+)\)/i", $thisline, $matches)) {
    $exam_type = trim($matches[1]);
}

[^)]將匹配除右括號以外的所有內容,並且會在遇到的第一個)處停止。 您需要對括號進行轉義,因為它們是特殊的正則表達式字符(它們用於捕獲變量)。 例如,在這里您使用未轉義的來存儲所需的內容。
\\s是任何類型的空格(空格,制表符...)的快捷方式。
您可能不需要在末尾加上s ,因為您是逐行解析doc: s標志僅使成為. 在所有其他內容上匹配換行符。

暫無
暫無

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

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