Regex 字后正则表达式匹配
我想知道如何捕获文本只有当一行的开头匹配某个字符串。。。但我不想捕捉开始的字符串 例如,如果我有文本: 开始标记:要捕获的文本 错误的_标记:不捕获的文本 我想捕捉: 要捕获的文本 从以begin_标记开头的行开始:而不是从以错误的_标记开头的行开始: 我知道如何选择以所需文本开头的行:^begin\标记:\W?(.*) 但这会选择文本“BEGIN_TAG:”。。。我不想要这个,只想要“开始标记”后的文本 我使用的是PCRE正则表达式您可以使用。然后,Lookback组中的文本不是整个匹配的一部分。您可以将其视为锚定,如Regex 字后正则表达式匹配,regex,pcre,Regex,Pcre,我想知道如何捕获文本只有当一行的开头匹配某个字符串。。。但我不想捕捉开始的字符串 例如,如果我有文本: 开始标记:要捕获的文本 错误的_标记:不捕获的文本 我想捕捉: 要捕获的文本 从以begin_标记开头的行开始:而不是从以错误的_标记开头的行开始: 我知道如何选择以所需文本开头的行:^begin\标记:\W?(.*) 但这会选择文本“BEGIN_TAG:”。。。我不想要这个,只想要“开始标记”后的文本 我使用的是PCRE正则表达式您可以使用。然后,Lookback组中的文本不是整个匹配的一部
\b
,^
等
然后你会得到:
(?您可以使用匹配重置运算符\K
,而不是不允许未知宽度模式的正向查找:
^BEGIN_TAG:\W?\K.*
见
详细信息:
^
-在Sublime中,是一行的开头
BEGIN\u标记:
-一个文本字符字符串
\W?
-1或0个非单词字符
\K
-匹配重置运算符,用于丢弃迄今为止匹配的所有文本
*
-除换行符(行的其余部分)以外的任何0+字符,这些字符是匹配文本中唯一保留的字符
尝试一个由(?:)
表示的非捕获组。你所说的“选择”是什么意思?你将文本捕获到组1中。它已经在那里了。你所需要做的就是访问组1的内容。它是PHP吗?看看。它不是PHP,而是SublimateText中的“选择”我的意思是,我希望文本在我的捕获组中。Supreme是否支持lookbehind?(?@melpomene,当然是对的。因此(?现在,要支持可选的\W
,您必须使用lookbehinds的交替:(?:)来支持?