`
wx1568037608
  • 浏览: 35844 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

"?:"在正则表达式中什么意思

 
阅读更多

“?:”非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用。

单独的“?”:匹配前面的子表达式零次或一次。

当“?”紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少地匹配所搜索的字符串,而默认的贪婪模式则尽可能多地匹配所搜索的字符串。

扩展资料

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

参考资料来源:百度百科:正则表达式

 

yongirl320 
推荐于2017-10-09
展开全部
?: 是 不想被捕获的时候使用 可以提高程序执行速度

比如 ([a-z][0-9])+

这个正则表达式里 ( ) 里面的内容被捕获了, 反向引用的时候可以用上 。
一般正则替换的时候用的多 像UBB代码

但是 如果写成 (?:[a-z][0-9])+
跟上面 正则表达式 整体匹配是一样的 就是 不会捕获 ( )里内容了。
也就是不能使用 反向引用

如果还是不太理解, 那就先了解一下 反向引用吧。
 
追问
不理解。能不能详细点。
追答
比如 PHP 手册里 有个 正则替换的函数 preg_replace 有的列子

$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
// 结果显示 April1,2003

这里就用上了 反响引用
$replacement 里的 ${1} 代表 (\w+) , $3代表 第2个 (\d+)
这个正则表达式 里 一共有 3个 () 也就是 可以 用 $1 $2 $3 调用 3个()里的 内容。

也可以使用 \1 \2 \3 来 代替 $1 $2 $3 都是一样的

那接下来 如果把 代码里的 正则表达式 改成下面的

$pattern = '/(?:\w+) (?:\d+), (\d+)/i';
那 这里 只有 一个 () 里的 内容 能使用
带 ?:的 ()里面内容是不会被 捕获的 ,所以 只能使用 $1 代表最后的 (\d+)
分享到:
评论

相关推荐

    正则表达式必知必会v_1.0.pdf

    在正则表达式中,元字符表示在正则表达式中不代表其字面含义,而是具有特别意义的字符。例如句点(.)、中括号字符([])、反斜线(\)等都是元字符。为了使用元字符的字面意思,需要进行转义,例如使用反斜线(\)...

    Java使用正则表达式提取XML节点内容的方法示例

    在Java中,正则表达式是一种非常有用的技术,它可以帮助开发者快速匹配和提取字符串中的内容。但是,正则表达式也是一种非常复杂的技术,需要开发者具备一定的基础知识和经验。 为了帮助开发者更好地掌握Java正则...

    Source Insight_正则表达式(中英翻译)

    在正则表达式字符串中,许多字符有特殊的意思。例如,有一个特殊的字符表示“行的开始”。Source Insight支持两种不同的正则表达式语法:“Source Insight”和“Perl Compatible”。 在正则表达式中,有一些特殊的...

    正则表达式文档.docx

    正则表达式文档 正则表达式是一个描述字符模式的对象...在JavaScript中,正则表达式是由一个RegExp对象表示的,可以使用一个RegExp()构造函数来创建RegExp对象,也可以用JavaScript正则表达式直接量来定义正则表达式。

    js正则表达式限制文本框只能输入数字,能输小数点.

    ### 正则表达式在JavaScript中的应用:限制文本框只能输入数字及小数点 在Web开发中,经常需要对用户输入的数据进行合法性验证。为了确保数据格式正确且符合预期,开发者通常会在前端使用JavaScript结合HTML来实现...

    Linux正则表达式.pdf

    正则表达式的应用非常广泛,在很多软件中得到广泛的应用,包括*nixnix(Linux, Unix 等),HP 等操作系统,PHP,C#,Java 等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。正则表达式的使用,可以...

    正则表达式单行、多行模式简介(使用说明)

    继上几篇正则表达式相关说明(详情:正则表达式 ),我们今天继续讨论下,它的单行,多行模式使用,及容易出现错误地方。单行,多行模式,都是正则表达式的模式修饰符里面出现的参数。目前常用正则表达式都有该使用...

    php的正则表达式完全手册

    6. 选择:在正则表达式中,使用`|`来表示选择,即“或”的意思,表示匹配左边或右边的表达式。 7. 后向引用:在正则表达式中,可以通过括号`()`来创建一个子表达式,后向引用可以引用前面的子表达式。例如,`(\d)\1...

    正则表达式判断手机邮箱

    正则表达式(Regular Expression)是一种模式匹配工具,用于在文本中查找、替换或提取符合特定规则的字符串。在IT行业中,正则表达式被广泛应用于数据验证、文本处理、爬虫程序等领域,特别是在判断手机号码和邮箱...

    使用正则表达式验证小写字母

    在提供的`083`文件中,可能包含了示例代码或更深入的正则表达式教程,建议你下载并研究,以加深对正则表达式验证小写字母的理解和应用。记住,实践是检验真理的唯一标准,多做练习,才能真正掌握这个强大的工具。

    快速上手正则表达式

    在正则表达式中,有一些非常重要的特殊字符,它们被称为元字符,这里总结一些最重要的特殊符号及其含义: 1. .(点):匹配任意单个字符(除换行符外)。 2. [](字符类):匹配括号中的任何一个字符,如[a-z]匹配...

    Delphi 正则表达式详细教程

    - **或者(|)**:在正则表达式中,“|”符号代表“或者”的意思,用来表示多种可能的匹配模式。例如,`e|Delphi|0` 将匹配 "e", "Delphi" 或 "0"。 - **重复(+)**:在正则表达式中,“+”符号表示一个或多个...

    家庭住址正则表达式

    比较准确的判断家庭住址是否正确,较网上的更新了,简单明了方便使用

    正则表达式---------资料整理,适合新手学习使用,对正则表达式的学习很有帮助

    5. 正则表达式的应用:正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix 等),HP 等操作系统,PHP,C#,Java 等开发环境,以及很多的应用软件中。 6. 正则表达式的匹配规则:包括基本模式匹配、...

    正则表达式速查表下载

    检索是移动开发经常遇到的问题,熟悉正则表达式的运用特别重要,此表可以帮助学习正则表达式的抽象意思

    正则表达式30分钟入门教程

    文本格式约定:专业术语 元字符/语法格式 正则表达式 正则表达式中的一部分(用于分析) 用于在其中搜索的字符串 对正则表达式或其中一部分的说明清除格式 ●什么是正则表达式? 在编写处理字符串的程序或网页时,...

    [精通正则表达式(第三版)].(美)佛瑞德.扫描版.pdf

    然而,具体到“精通正则表达式(第三版)”这本书,我们可以进一步探讨正则表达式的概念及其在编程中的应用。 ### 正则表达式基础 正则表达式是一种强大的文本处理工具,能够帮助开发者执行复杂的字符串搜索和替换...

    常用正则表达式工具

    在IT行业中,掌握正则表达式是提高工作效率的重要技能之一。 正则表达式工具通常具备以下功能: 1. **模式构建**:提供用户友好的界面,帮助用户构建复杂的正则表达式,通过预览功能实时查看匹配结果。 2. **语法...

Global site tag (gtag.js) - Google Analytics