Regex-如何在不包含单词时选择所有内容
说我有这篇课文 我需要想些东西写在这里。 我是该学院的校友。 蓝猫是蓝的,红猫是红的 如果文本中不存在单词“student”(忽略大小写),我希望能够选择所有内容。因此,我需要一些超越第一行的东西。我本来有点像Regex-如何在不包含单词时选择所有内容,regex,Regex,说我有这篇课文 我需要想些东西写在这里。 我是该学院的校友。 蓝猫是蓝的,红猫是红的 如果文本中不存在单词“student”(忽略大小写),我希望能够选择所有内容。因此,我需要一些超越第一行的东西。我本来有点像 /(?:[^student]).*/ 但它不能正常工作。我不确定我使用的正则表达式的“风格”,但它是与PHP一起使用的,并且是在Drupal站点的后端 谢谢大家! 问题 正如ctwheels评论所建议的,您编写的regexp(?:[^student]).*并没有按照您认为的那样执行。
/(?:[^student]).*/
但它不能正常工作。我不确定我使用的正则表达式的“风格”,但它是与PHP一起使用的,并且是在Drupal站点的后端
谢谢大家! 问题 正如ctwheels评论所建议的,您编写的regexp
(?:[^student]).*
并没有按照您认为的那样执行。让我们详细分析您试图说明问题的原因:
(?:)
如果匹配,使用匹配,如果不使用整个字符串呢?^(?!student.*$
或^((?!student)。*$
?lol我也在想同样的事情你显然不明白正则表达式中[^student]
的意思<代码>[]不用于对字符串进行分组,而是用于指定字符类。@ctwheels这两种方法都有效,但我认为我现在遇到的问题来自drupal。是否有一种方法可以替换。*在您的解决方案中,让它搜索和选择多行?您可以尝试显式匹配新行,但我避免使用regexp进行多行分析。如果您有较长的文本,我建议您在整个文件中查找单词“student”,而不是使用简单的逐行字符匹配器,如。