Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式仅匹配自定义标记内的单词_Regex - Fatal编程技术网

Regex 正则表达式仅匹配自定义标记内的单词

Regex 正则表达式仅匹配自定义标记内的单词,regex,Regex,我对regex还相当陌生,正在尝试找出一种模式,该模式只与自定义标记中的单词实例相匹配 在下面的例子中,这两个词都符合在a |之后和a]之前的条件 Pattern: (?=|)singleline(?=.*]) Sample: [if @sample|singleline second] <p>Another statement singleline goes here</p> [/if] 模式:(?=|)单线(?=.*)) Sample:[if@Sample | s

我对regex还相当陌生,正在尝试找出一种模式,该模式只与自定义标记中的单词实例相匹配

在下面的例子中,这两个词都符合在a |之后和a]之前的条件

Pattern: (?=|)singleline(?=.*])

Sample: [if @sample|singleline second] <p>Another statement singleline goes here</p> [/if]
模式:(?=|)单线(?=.*))
Sample:[if@Sample | singleline second]另一条语句singleline出现在这里

[/if]
符合在a |之后和a]之前的条件的词

Pattern: (?=|)singleline(?=.*])

Sample: [if @sample|singleline second] <p>Another statement singleline goes here</p> [/if]
*
,意思是“任何事情,零次或多次,并且对它贪婪”,它将竞争到字符串的末尾,并且只备份到一个
]
(最后一个)。(而您的“后看”就是“前看”):

如果你真的想匹配你所说的你想匹配的内容(见引文),那么这就是:

Pattern: (?<=|)(\w+)(?=])

模式:(?
(?=|))
断言字符串中的下一个内容为nothing或nothing。它将始终计算为
true
;始终可以不匹配任何内容。我认为swaver2112是正确的,您打算在那里使用lookbehind,但您还需要跳出管道:
(?您能给出一个您希望产生的输入和预期输出的示例吗?只是希望将条件匹配为true。可能需要删除以下单词:
$pattern='%(?=\\\\|)singleline(?=.*)%;$output=preg\u replace($pattern,“,$output);
谢谢您的建议,向前看是一个很大的帮助。我得到了这个:
(?是否
(?)?
Pattern: \|singleline(?=[^\]\[]*\])