当前位置: 首页 > 编程笔记 >

Regular Expressions 字符类和初学者面临的常见问题

洪雅健
2023-03-14
本文向大家介绍Regular Expressions 字符类和初学者面临的常见问题,包括了Regular Expressions 字符类和初学者面临的常见问题的使用技巧和注意事项,需要的朋友参考一下

示例

1.角色类别

字符类用表示[]。字符类中的内容被视为single character separately。例如,假设我们使用

[12345]

在上面的示例中,它表示match 1 or 2 or 3 or 4 or 5。简而言之,可以理解为or condition for single characters(强调单个字符

1.1注意事项

    html" target="_blank">list-paddingleft-2">
  • 在字符类中,没有匹配字符串的概念。因此,如果您使用的是regex [cat],则并不意味着它应从cat字面上匹配该词,而是意味着它应与cora或匹配t。在正则表达式新手中这是一个非常普遍的误解。

  • 有时人们|在角色类中使用(替代),认为这样做会OR condition出错。例如,使用[a|b]实际是指matcha或|(字面上)或b。

2.角色类别的范围

字符类中的范围用-符号表示。假设我们想找到个英文字母中的任何字A来Z。这可以通过使用以下字符类来完成

[A-Z]

可以对任何有效的ASCII或unicode范围执行此操作。最常用的范围包括[A-Z],[a-z]或[0-9]。此外,这些范围可以在字符类中组合为

[A-Za-z0-9]

这意味着匹配A to Z或a to z或范围内的任何字符0 to 9。排序可以是任何东西。因此[a-zA-Z0-9],只要您定义的范围正确,上述内容就等效。

2.1注意事项

  • 有时写作范围时A,以Z人把它写成[A-z]。在大多数情况下,这是错误的,因为我们使用z而不是Z。因此,这表示匹配从65(A)的ASCII范围到122(z)的任何字符,其中包括在90(Z)的ASCII范围之后的许多意外字符。但是,当为特定语言设置排序规则时,[A-z]可用于匹配[a-zA-Z]POSIX样式正则表达式中的所有字母。[[ "ABCEDEF[]_abcdef" =~ ([A-z]+) ]] && echo "${BASH_REMATCH[1]}"对CygwinLC_COLLATE="en_US.UTF-8"产生收益ABCEDF。如果设置LC_COLLATE为C(在Cygwin上完成export),它将给出预期的ABCEDEF[]_abcdef。

  • -内部字符类的含义很特殊。它表示如上所述的范围。如果我们想按-字面意义匹配字符怎么办?我们不能将它放在任何地方,否则如果它放在两个字符之间,它将表示范围。在这种情况下,我们必须把-像字符类的开始[-A-Z]或字符类的末尾像[A-Z-]或者escape it如果你想在中间一样使用它[A-Z\-a-z]。

3.否定角色类

否定的字符类用表示[^..]。脱字符号^表示匹配字符类中存在的一个字符以外的任何字符。例如

[^cat]

装置匹配任何字符以外c或a或t。

3.1注意事项

  • 插入符号的含义^仅在字符类开头时才映射为否定。如果它在字符类中的其他位置,则将其视为文字插入符号,没有任何特殊含义。

  • 有些人像这样写正则表达式[^]。在大多数正则表达式引擎中,这会产生错误。原因是当您^在起始位置使用时,它期望至少应取一个字符。但是,在JavaScript中,这是一个有效的结构,匹配什么都没有,即匹配任何可能的符号(但不包括变音符,至少在ES5中)。

 类似资料:
  • 本文向大家介绍Java初学者常问的问题(推荐),包括了Java初学者常问的问题(推荐)的使用技巧和注意事项,需要的朋友参考一下 本文介绍一些Java初学者常问的问题,可以用%除以一个小数吗? a += b 和 a = a + b 的效果有区别吗? 声明一个数组为什么需要花费大量时间? 为什么Java库不用随机pivot方式的快速排序? 基本数据类型 Q. 为什么 -0/3 结果是 0,而 -0.0

  • 问题内容: 我知道数组运算符具有优先权。然后是二元算术运算符*,/,%。然后+和-优先级较低。 但是我很困惑在这个示例中哪个人会首先解决Java。并且如果我们有2个具有相同优先级的运算符,那么Java中将首先使用哪个运算符? 谢谢。 如果有人可以为我解决这个问题并向我部分解释。因为这总是使我困惑于考试。 问题答案: 如果运算符具有相同的优先级,则从左到右对其进行求值。 从教程: 当相同优先级的运算

  • 1. 打开vsconsole的方法 app.json文件加入配置项"debug": true 2. 自定义组件json文件 为保证自定义组件正常渲染,组件json文件需声明"component": true 3. 导航栏配置navigationStyle 该属性在小程序中可以设置三个值: default/custom/hide default:默认样式 custom:隐藏导航栏 hide:隐藏胶囊

  • 本文向大家介绍javascript初学者常用技巧,包括了javascript初学者常用技巧的使用技巧和注意事项,需要的朋友参考一下 本文实例讲解了javascript初学者常用的一些技巧。分享给大家供大家参考之用。具体如下: 一、Javascript程序存放位置 HTML的<body></body>里面 HTML的<head></head>里面 *.js文件里面 二、标准格式 放在HTML的<bo

  • 我应该编写一个简单的方法,返回给定数量的给定字符串,用逗号分隔(最后没有逗号),并使用递归。如果计数少于两个,则返回空字符串“”。 如果我把s=cat,count=5,我会得到所需的短一个。我不知道该怎么做,在这里得到适当数量的重复,而不在末尾加逗号。 编辑:显然我没有沟通,如果计数为2或更少,则该方法应该返回一个空字符串。抱歉这里不够清晰。

  • 问题内容: 我正在研究用Java编写音频合成器,并且想知道是否有人对编写这样的程序有任何建议或良好的资源。我正在寻找有关生成原始声波,如何将其输出为可用形式(通过扬声器播放)以及有关该主题的一般理论的信息。多谢你们。 问题答案: 这个问题基本上是关于将函数映射到数字数组。支持一流功能的语言在这里非常有用。 请访问 http://www.harmony-central.com/Computer/Pr