首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择开始<字符,但不使用pre或/pre继续

选择开始<字符,但不使用pre或/pre继续
EN

Stack Overflow用户
提问于 2013-04-27 01:51:51
回答 3查看 57关注 0票数 1

我想使用Regexp选择此文档中除<pre</pre之外的所有<字符

代码语言:javascript
复制
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <pre>
        if a < b
    </pre>
</body>
</html>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-27 01:58:30

[...]仅适用于单字符类。

所以[^(pre|/pre)]指的不是这些字符中的任何一个:(pre|/pre)

或者,等效地,这些字符都不是:)(|/pre

(因为括号和|[]中没有任何意义(据我所知))。

然后你说?应该是可选的,所以它不会排除任何东西。

你可能想要提前看一看:

代码语言:javascript
复制
\<(?!/?pre)

(?!...)是负前瞻,如果接下来的字符匹配括号内给出的模式,它就会“匹配”。

/?pre是对pre|/pre的简化。

票数 0
EN

Stack Overflow用户

发布于 2013-04-27 01:58:23

这将取决于正则表达式引擎。如果它支持使用negative lookahead assertions的Perl正则表达式,您可以这样做

代码语言:javascript
复制
<(?!(pre)|(\/pre))

代码语言:javascript
复制
<(?!\/?pre)

group1(?!group2)的意思是“仅当后面的部分与group1不匹配时才匹配group2 (因此得名为"negative lookahead”)。这里group1<group2\/?pre

票数 1
EN

Stack Overflow用户

发布于 2013-04-27 02:14:28

这是一个可爱的例子,说明了为什么RegEx不是Here's的最佳选择。

无论如何,如果你选择忽略,下面是你想要使用的表达式(它还将处理在HTML中有效的空格和大写)

代码语言:javascript
复制
<(?!(\/?\s*[Pp][Rr][Ee]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16242392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档