Regex 使用正则表达式匹配包含特定单词且是字符串最后一行的行

Regex 使用正则表达式匹配包含特定单词且是字符串最后一行的行,regex,pattern-matching,Regex,Pattern Matching,我想找到一个正则表达式,它将匹配一行,其中包含某个单词(或字符),并且是字符串的最后一行 有什么办法可以做到这一点吗?这个想法是利用点与换行符不匹配这一事实。 您可以使用这种模式: .*?TARGET.*$ 或隔离目标: TARGET(?=.*$) 注意事项: 您必须注意多行模式(大多数正则表达式引擎的m修饰符)没有被激活,否则$将匹配一行的结尾(特别是字符串的结尾) 如果可用,更愿意使用\z锚定,而不是$,因为在与Perl兼容的正则表达式引擎中,$也会在尾随换行符序列之前成功(不过,您也

我想找到一个正则表达式,它将匹配一行,其中包含某个单词(或字符),并且是字符串的最后一行


有什么办法可以做到这一点吗?

这个想法是利用点与换行符不匹配这一事实。 您可以使用这种模式:

.*?TARGET.*$
或隔离目标:

TARGET(?=.*$)

注意事项:

您必须注意多行模式(大多数正则表达式引擎的m修饰符)没有被激活,否则
$
将匹配一行的结尾(特别是字符串的结尾)

如果可用,更愿意使用
\z
锚定,而不是
$
,因为在与Perl兼容的正则表达式引擎中,
$
也会在尾随换行符序列之前成功(不过,您也可以利用这种灵活性):


这个想法是利用点与换行符不匹配的事实。 您可以使用这种模式:

.*?TARGET.*$
或隔离目标:

TARGET(?=.*$)

注意事项:

您必须注意多行模式(大多数正则表达式引擎的m修饰符)没有被激活,否则
$
将匹配一行的结尾(特别是字符串的结尾)

如果可用,更愿意使用
\z
锚定,而不是
$
,因为在与Perl兼容的正则表达式引擎中,
$
也会在尾随换行符序列之前成功(不过,您也可以利用这种灵活性):


欢迎来到堆栈溢出。一般来说,对于这种性质的问题,我们希望海报能够展示他们解决这个问题的最新尝试。到目前为止,你能发布任何你尝试过的正则表达式吗?你所说的行,最后一行是什么意思?您在哪里使用这个正则表达式、PHP、javascript等?行在哪里?这个词呢?你已经试过什么了?欢迎来到Stack Overflow。一般来说,对于这种性质的问题,我们希望海报能够展示他们解决这个问题的最新尝试。到目前为止,你能发布任何你尝试过的正则表达式吗?你所说的行,最后一行是什么意思?您在哪里使用这个正则表达式、PHP、javascript等?行在哪里?这个词呢?你已经试过什么了?难道“点不匹配换行符”不是语言特有的功能吗?@BlackPlanet:我不知道世界上所有的语言/应用程序,但据我所知,默认情况下所有语言都是这样设置的。匹配一行-你需要在开始时添加
*
<代码>目标。*$。甚至
*\b target\b.*$
将一行匹配成一个完整的单词。@casimirithippolyte这很公平。事实上,我正在挑选你的大脑,看看这是否(大体上)是regex标准,而不仅仅是我使用过的少数几个有默认值的语言的一个特性。是的。。这里的区别是。。如果您有两个
TARGET
words。。使用ungreedy将匹配第一个单词。。贪婪将匹配第二个单词。.“点不匹配换行符”不是语言特有的功能吗?@BlackPlanet:我不知道世界上所有的语言/应用程序,但据我所知,默认情况下,所有语言都是这样设置的。匹配一行-你需要在开头添加
*
<代码>目标。*$。甚至
*\b target\b.*$
将一行匹配成一个完整的单词。@casimirithippolyte这很公平。事实上,我正在挑选你的大脑,看看这是否(大体上)是regex标准,而不仅仅是我使用过的少数几个有默认值的语言的一个特性。是的。。这里的区别是。。如果您有两个
TARGET
words。。使用ungreedy将匹配第一个单词。。贪婪将匹配第二个单词。。