RegExps:使用否定匹配以字符开头的单词
尝试学习正则表达式 在阅读了关于懒惰、贪婪和否定角色类作为懒惰的替代品的部分后,我尝试自己使用它,但我不明白为什么下面的内容不起作用RegExps:使用否定匹配以字符开头的单词,regex,bash,grep,regex-negation,Regex,Bash,Grep,Regex Negation,尝试学习正则表达式 在阅读了关于懒惰、贪婪和否定角色类作为懒惰的替代品的部分后,我尝试自己使用它,但我不明白为什么下面的内容不起作用 echo "hello world is this the way?" | grep -oE '\<w[^\>]+\>' 实际产量: world is this the way 单词边界字符(\)是否需要在字符类中进行特殊转义 我只是在cli(bash 4.2.45,osx mavericks)上进行测试。这是一个因素吗 我知道\b也是一个单
echo "hello world is this the way?" | grep -oE '\<w[^\>]+\>'
实际产量:
world is this the way
单词边界字符(\<\>
)是否需要在字符类中进行特殊转义
我只是在cli(bash 4.2.45,osx mavericks)上进行测试。这是一个因素吗
我知道\b
也是一个单词边界字符,但是如果我使用它,那么regexp是这样的:\bw[^\b]+\b
,我会得到相同的输出,但它包含问号
谢谢
更新:
我正在寻找一个使用否定字符类的答案,以避免正则表达式引擎中的回溯,正如在Laziness的替代方案中所解释的那样。如果不能使用否定字符类,我将寻找原因的解释。您可以使用以下模式:
\bw\w+\b
这将捕获所有以w
开头并由单词字符组成的单词
使用否定时,您必须列出所有要排除的字符-我确信您要排除的字符不止是单词边界和问号。您可以使用以下模式:
\bw\w+\b
这将捕获所有以w
开头并由单词字符组成的单词
使用否定时,您必须列出所有要排除的字符-我确信您要排除的字符不止是单词边界和问号。您可以使用以下模式:
\bw\w+\b
这将捕获所有以w
开头并由单词字符组成的单词
使用否定时,您必须列出所有要排除的字符-我确信您要排除的字符不止是单词边界和问号。您可以使用以下模式:
\bw\w+\b
这将捕获所有以w
开头并由单词字符组成的单词
当使用否定时,您必须列出所有要排除的字符-我确信您要排除的字符不止是单词边界和问号。既然单词边界通常由空格定义,为什么不使用
\<w[^[:space:]]+\>
既然单词边界通常由空格定义,为什么不使用
\<w[^[:space:]]+\>
既然单词边界通常由空格定义,为什么不使用
\<w[^[:space:]]+\>
既然单词边界通常由空格定义,为什么不使用
\<w[^[:space:]]+\>
是的,但我在寻找一个使用否定字符类的答案,或者解释了为什么在regular-expressions.info上使用否定字符类不起作用。不过,否定的问题是,您必须列出所有要排除的字符-我相信您要排除的字符不止是单词边界和问号。也许我不理解否定。正则表达式引擎不是停止匹配并在遇到否定字符时返回匹配吗?啊,所以它只是跳过单词结尾字符并继续匹配吗?是的。否定意味着:不在列表中的任何字符都匹配。然后它会继续匹配其余的。是的,但我正在寻找一个使用否定字符类的答案,或者解释了为什么在regular-expressions.info上使用否定字符类不起作用。不过,否定的问题是,您必须列出所有要排除的字符-我相信您要排除的字符不止是单词边界和问号。也许我不理解否定。正则表达式引擎不是停止匹配并在遇到否定字符时返回匹配吗?啊,所以它只是跳过单词结尾字符并继续匹配吗?是的。否定意味着:不在列表中的任何字符都匹配。然后它会继续匹配其余的。是的,但我正在寻找一个使用否定字符类的答案,或者解释了为什么在regular-expressions.info上使用否定字符类不起作用。不过,否定的问题是,您必须列出所有要排除的字符-我相信您要排除的字符不止是单词边界和问号。也许我不理解否定。正则表达式引擎不是停止匹配并在遇到否定字符时返回匹配吗?啊,所以它只是跳过单词结尾字符并继续匹配吗?是的。否定意味着:不在列表中的任何字符都匹配。然后它会继续匹配其余的。是的,但我正在寻找一个使用否定字符类的答案,或者解释了为什么在regular-expressions.info上使用否定字符类不起作用。不过,否定的问题是,您必须列出所有要排除的字符-我相信您要排除的字符不止是单词边界和问号。也许我不理解否定。正则表达式引擎不是停止匹配并在遇到否定字符时返回匹配吗?啊,所以它只是跳过单词结尾字符并继续匹配吗?是的。否定意味着:不在列表中的任何字符都匹配。然后它会继续匹配其余的。是的,这也行。理解这一点的一部分是,否定类只意味着匹配不属于否定集的内容,另外还要知道单词的结尾有时更好地由空格定义。是的,这也有效。理解这一点的一部分是,否定类只意味着匹配不属于否定集的内容,另外还要知道单词的结尾有时更好地由空格定义。是的,这也有效。理解这一点的一部分是,否定类只意味着匹配不属于否定集的内容,另外还要知道单词的结尾有时更好地由空格定义。是的,这也有效。理解这一点的一部分是,否定类只意味着匹配不属于neg的部分