Regex 正则表达式仅匹配自定义标记内的单词
我对regex还相当陌生,正在尝试找出一种模式,该模式只与自定义标记中的单词实例相匹配 在下面的例子中,这两个词都符合在a |之后和a]之前的条件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
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(?=[^\]\[]*\])