繁体   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