Regex 正则表达式以匹配不在html属性或链接文本中的单词实例

Regex 正则表达式以匹配不在html属性或链接文本中的单词实例,regex,Regex,我想找到一个未链接的关键字,如下面的示例所示,我只需匹配未链接的google关键字,google未链接。如果您可以确保您的HTML表现良好(且有效),尤其是不包含注释或嵌套的标记,你可以试试 google(?!((?!<a[\s>]).)*</a>) google(?(?!])*) 与任何“google”匹配,在下一次打开a标记之前,没有紧跟关闭a标记。但是您最好使用HTML解析器。如果您可以确保您的HTML行为良好(且有效),尤其是不包含注释或嵌套的a标记,您可以尝

我想找到一个未链接的关键字,如下面的示例所示,我只需匹配未链接的google关键字,google未链接。

如果您可以确保您的HTML表现良好(且有效),尤其是不包含注释或嵌套的
标记,你可以试试

google(?!((?!<a[\s>]).)*</a>)
google(?(?!])*)

与任何“google”匹配,在下一次打开
a
标记之前,没有紧跟关闭
a
标记。但是您最好使用HTML解析器。

如果您可以确保您的HTML行为良好(且有效),尤其是不包含注释或嵌套的
a
标记,您可以尝试

google(?!((?!<a[\s>]).)*</a>)
google(?(?!])*)
与任何“google”匹配,在下一次打开
a
标记之前,没有紧跟关闭
a
标记。但是您最好使用HTML解析器。

这对我来说很有用(javascript):

var matches=str.match(/(?:

这对我有用(javascript):


var matches=str.match(/(?):

你能更具体些吗?不幸的是,我很难理解这个问题。你在哪里做比较、数据库、编程语言等等?你最近尝试过哪些失败了?你会考虑一个非正则表达式解决方案吗?或者你坚持一个被黑客攻击的正则表达式?@你可能想要指定你使用的语言。(因此可以建议非正则表达式的替代方案).regex不是解析HTML的最佳工具,正如答案中指出的那样。如果你真的需要使用regex,你可能会想说为什么你喜欢使用regex解决方案。谢谢你的建议,我想用JavaScript实现它。由于我的英语很差,我无法清楚地描述我的问题,很抱歉!你能更具体一点吗不幸的是,我很难理解这个问题。你在哪里做比较、数据库、编程语言等等?你最近尝试了哪些失败?你会考虑一个非正则表达式的解决方案,还是坚持一个黑客攻击的正则表达式?@你可能想要指定你使用的语言。(因此可以建议非正则表达式的替代方案).regex不是解析HTML的最佳工具,正如答案中指出的那样。如果你真的需要使用regex,你可能会想说为什么你喜欢使用regex解决方案。谢谢你的建议,我想用JavaScript实现它。由于我英语不好,我无法清楚地描述我的问题,我很抱歉!@Jens,
(\s |>)
最好作为字符类编写:
[\s>]
。字符类比等效的替代方法要有效得多。在这种情况下,这可能无关紧要,请参阅最近的问题以进行演示:-1用于使用正则表达式解析HTML;此正则表达式可能与XHTML CDATA或HTML注释不匹配。@Borelid:这就是为什么我说HTML不应包含Commonts.我同意这不是解决问题的方法,但我不认为标准的“regex是邪恶的”答案会以任何方式帮助OP解决问题。这种模式还与html属性中的关键字(google)匹配,例如google.com“>XXX,我不想与之匹配。尽管如此,谢谢!@Jens,
(\s |>)
最好作为字符类编写:
[\s>]
。字符类比等效的替代方法要有效得多。在这种情况下,这可能无关紧要,请参阅最近的问题以进行演示:-1用于使用正则表达式解析HTML;此正则表达式可能与XHTML CDATA或HTML注释不匹配。@Borelid:这就是为什么我说HTML不应包含Commonts.我同意这不是解决问题的方式,但我不认为标准的“regex是邪恶的”答案会以任何方式帮助OP解决问题。此模式还与html属性中的关键字(google)匹配,例如google.com“>XXX,我不希望匹配。谢谢!