[英]Matching Word, then between delimiters in PHP With Regular Expression
在编写正则表达式时遇到一些困难,它将满足我的需求。 基本上,我通过一个包含数千行文本的文件进行解析,并用该行查找任何内容:
考试:
匹配的文本将始终采用以下格式:
考试:(测试字符串)多余的文字
所以我想做的是在EXAM:上进行匹配,然后插入括号内的所有内容。
我目前的表情:
/^.+?\EXAM:(.+)$/is
在EXAM:之后插入所有内容,该功能不适用于此应用程序。
您可以使用/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.