Php 如何用正则表达式检测关键字

Php 如何用正则表达式检测关键字,php,regex,syntax-highlighting,Php,Regex,Syntax Highlighting,我想用php for java编写一个简单的highlighter代码。其中一个关键字是“class”,并由class 问题是span中的类也被标记为关键字。所以我需要一个正则表达式,上面写着:“class”,然后不是“=” 它尝试了/class[^=],但这完全是胡说八道。那么,我如何创建这个表达式而不是这个表达式呢?谢谢大家! 好的,的正则表达式匹配'class'字符串,但只有在它后面没有“=”任务时,才更容易构建,使用断言: /class(?!=)/ 但恐怕这只是故事的开始。例如,您是否

我想用php for java编写一个简单的highlighter代码。其中一个关键字是“class”,并由
class
问题是span中的类也被标记为关键字。所以我需要一个正则表达式,上面写着:
“class”,然后不是“=”

它尝试了
/class[^=]
,但这完全是胡说八道。那么,我如何创建这个表达式而不是这个表达式呢?谢谢大家!

好的,
的正则表达式匹配'class'字符串,但只有在它后面没有“=”
任务时,才更容易构建,使用断言:

/class(?!=)/
但恐怕这只是故事的开始。例如,您是否应该匹配
子类
无类
?可能不是,因此关键字应该包装到
\b
(单词边界锚定):


嗯,你说得很对,事实上我对号码有个问题。非常感谢。所以与“不”的意思相同?那么()标记了什么呢?
()
在本例中仅用于界定先行模式
(?!)
匹配字符串中的一个位置,该位置不是由
@T\u 01匹配的子字符串的开头。负向前看与反向字符类不同<代码>[^=]将要求匹配一个不是相等符号的项目
(?!=)
将光标保持在相同的位置,如果该位置后面没有相等的符号,则返回true;如果有相等的符号,则返回false,但不会占用下一个位置,如果没有下一个位置,则返回false。
/\bclass\b(?!=)/