解決一個正則表達式會做一些我需要的工作有點困難。基本上,我公司通過與幾千行文本的文件解析,並用線在尋找什麼:在正則表達式中匹配Word,然後在PHP中使用正則表達式分隔符
考試:
匹配的文本將始終處於格式:
考試:(的TestString )額外的文本
所以我想要做的是在EXAM上匹配:,然後拉括號內的所有內容。
我現在的表情:
/^.+?\EXAM:(.+)$/is
拉的一切考試之後公佈:,不會爲這個應用程序。
解決一個正則表達式會做一些我需要的工作有點困難。基本上,我公司通過與幾千行文本的文件解析,並用線在尋找什麼:在正則表達式中匹配Word,然後在PHP中使用正則表達式分隔符
考試:
匹配的文本將始終處於格式:
考試:(的TestString )額外的文本
所以我想要做的是在EXAM上匹配:,然後拉括號內的所有內容。
我現在的表情:
/^.+?\EXAM:(.+)$/is
拉的一切考試之後公佈:,不會爲這個應用程序。
謝謝MElliot,工作完美=) –
不客氣@DanielV。,很高興我能幫上忙! :) – MElliott
您可以使用/EXAM:\s*\(([^)]+)\)/i
:
if(preg_match("/EXAM:\s*\(([^)]+)\)/i", $thisline, $matches)) {
$exam_type = trim($matches[1]);
}
[^)]
將匹配任何東西,除了一個右括號,它會停在fi處遇到第一個)
。您需要避免括號,因爲它們是特殊的正則表達式字符(它們用於捕獲變量)。在這裏例如你使用非轉義的存儲你想要的東西。
\s
是任何類型的空白(空格,標籤...)的快捷方式。
您可能最後不需要s
,因爲您要逐行解析doc:s
標誌只會使.
與其他所有內容的換行符匹配。
你一次處理一行嗎?請一次顯示您的代碼 – Ibu
伊布,一行。 如果: \t \t \t \t { \t \t \t \t \t $ EXAM_TYPE(的preg_match( 「/^.+ \ EXAM?。(+)$ /是」,$ thisline,$)匹配)=修剪($匹配[1]); \t \t \t \t} –
'teststring'或'extra test'裏面是否可以有括號符號? – Robin