2016-11-20 87 views
0

我想了解从遗留代码柔性规则,可以帮助:是什么符号s在弯曲的正则表达式

number [0-9]*['']s?[bdh] 
  1. 什么是“”(两个单引号)是什么意思?这是否意味着一个单引号,第一个引号符号是后面提到的实际报价的转义符?我的印象是特殊字符需要用反斜杠标记,如[\']。如果''表示',那么使用反斜杠作为转义字符的正确方法是什么?

  2. 这里“s”符号的含义是什么?

你可以举一些例子,这两个正则表达式匹配吗?

回答

0

的Flex图案在manual都记录。

  • s只是与字母 “S”

  • 字符的括号内的序列,像[bdh],是一个字符类。它匹配单个字符,该字符是类中任何一个字符。大多数角色在角色类中使用时会失去其特殊含义。

  • '在柔性模式中没有特殊含义;像s,它只是匹配自己。并且重复角色类中的角色不起作用。所以['']匹配一个单撇号,它可能已被简写为'。但是,许多程序员的编辑认为撇号用于围绕字符串或字符文字,而单个撇号会导致语法突出显示失败。写作['']是避免这种误解的一种方法。 (我个人认为最好找一个好的编辑器,而不是修改你的代码来补偿一个愚蠢的编辑器,但口味不同。)

0
  1. 我认为双撇号只是一个错误。括号定义了一个字符集,而撇号没有特殊的含义。括号内的双撇号的含义只是包含一个撇号的字符集的含义,这相当于只有一个单撇号。
  2. 字母字符的含义就是字符。因此,s仅表示s。后缀问号使其成为可选项。

因此,你的表达应相当于

number [0-9]*'s?[bdh] 
+0

感谢您的回答。另一个答案是相似的,但更详细,所以我接受了。 – R71

相关问题