正则表达式语法讲解(三)

简介:
  Modifiers
      修改符
 
      Modifiers are for changing behaviour of TRegExpr.
      修改符用于改变TregExpr的行为。
 
      There are many ways to set up modifiers.
      Any of these modifiers may be embedded within the regular expression itself using the (?...) construct.
      Also, You can assign to appropriate TRegExpr properties (ModifierX for example to change /x, or ModifierStr to change all modifiers together). The default values for new instances of TRegExpr object defined in global variables, for example global variable RegExprModifierX defines value of new TRegExpr instance ModifierX property.
     {TODO     下面的翻译不好恳请指教}
      有很多方法设置修改符。
      任意这些修改符都可以使用(?...)构造器被嵌入一个正则表达式。
      同样你可以赋予TregExpr属性合适的修改符例如修改符X用于改变/x或者修改符Srt用于改变所有的修改符。TRegExpr对象的默认值定义在全局变量中比如全局变量RegExprModifierX定义了TRegExpr的新实例的ModifierX属性的值。
 
      Do case-insensitive pattern matching (using installed in you system locale settings), see also InvertCase.
      要进行大小写敏感模式匹配使用安装在你系统的本地配置参见InvertCase。
 
      m
 
      Treat string as multiple lines. That is, change "^'' and "$'' from matching at only the very start or end of the string to the start or end of any line anywhere within the string, see also Line separators.
      处理多行文本。意味着"^'' and "$''不仅匹配本行的开头和结尾而是目标串中的任意开头和结尾参见行分隔符。
 
      s
 
      Treat string as single line. That is, change ".'' to match any character whatsoever, even a line separators (see also Line separators), which it normally would not match.
处理目标串为单行。表示改变".''用于匹配任意字符即使是行分隔符参加行分隔符正常情况下行分隔符不会被".''匹配。
 
      g
 
      Non standard modifier. Switching it Off You'll switch all following operators into non-greedy mode (by default this modifier is On). So, if modifier /g is Off then '+' works as '+?', '*' as '*?' and so on
      非标准修改符。关闭修改符你将使下列的操作符为非贪婪模式默认修改符使开启的。所以如果修改符/g关闭了那么'+'就会等于'+?''*'等于'*?'等等。
 
      x
 
      Extend your pattern's legibility by permitting whitespace and comments (see explanation below).
      通过使用空格和注释扩展你的匹配模式的易读性。参见下面的explanation
 
      r
 
      Non-standard modifier. If is set then range ? additional include russian letter '?, ?? additional include '?, and ??include all russian symbols.
      Sorry for foreign users, but it's set by default. If you want switch if off by default - set false to global variable RegExprModifierR.
      非标准修改符。如果设置非标准修改符那么的范围就还会包括俄国的字符'???还包括'?和??等所有俄文符号。
      对外国人来说很抱歉这被设置为默认的。如果你默认要求关闭 设置全局变量RegExprModifierR为false即可。
 
      The modifier /x itself needs a little more explanation. It tells the TRegExpr to ignore whitespace that is neither backslashed nor within a character class. You can use this to break up your regular expression into (slightly) more readable parts. The # character is also treated as a metacharacter introducing a comment, for example:
      修改符/x需要一些更多的解释。它告诉TRegExpr忽略既不是反斜线也不是在一个字符类中的空格。你可以使用这个特性轻松地使你的正则表达式分为更多的可读部分。“#”也被认为使一个元字符用于注释中例如
 
      (
      (abc) # comment 1
       |    # You can use spaces to format r.e. - TRegExpr ignores it
      (efg) # comment 2
      )
 
      This also means that if you want real whitespace or # characters in the pattern (outside a character class, where they are unaffected by /x), that you'll either have to escape them or encode them using octal or hex escapes. Taken together {TODO 不晓得怎么翻译}, these features go a long way towards making regular expressions text more readable.
      这也意味着如果你要在模式中使用真正的空格或者“#”在一个字符类外他们可以通过加/x被忽略你要么不得不将它们转义或者用十进制或者十六进制表示。同时这些特性对正在表达式文本的可读性大有帮助。
 
      Perl extensions
      Perl扩展
 
      {TODO     不知道 }
      (?imsxr-imsxr)
      You may use it into r.e. for modifying modifiers by the fly. If this construction inlined        into subexpression, then it effects only into this subexpression
 
      Examples:
       (?i)Saint-Petersburg        matchs 'Saint-petersburg' and 'Saint-Petersburg'
       (?i)Saint-(?-i)Petersburg matchs 'Saint-Petersburg' but not 'Saint-petersburg'
       (?i)(Saint-)?Petersburg     matchs 'Saint-petersburg' and 'saint-petersburg'
 
       ((?i)Saint-)?Petersburg     matchs 'saint-Petersburg', but not 'saint-petersburg'
 
 
(?#text)
A comment, the text is ignored. Note that TRegExpr closes the comment as soon as it sees a ")", so there is no way to put a literal ")" in the comment.
一个注释文本被忽略了。注意TRegExpr只要看到")"就关闭注释所以不能在注释中加入")"。





本文转自 xkdcc 51CTO博客原文链接http://blog.51cto.com/brantc/116470如需转载请自行联系原作者
目录
相关文章
|
7月前
|
机器学习/深度学习 存储 JavaScript
正则表达式基础语法与Java、JS使用实例
正则表达式基础语法与Java、JS使用实例
108 1
|
6月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
6月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
存储 索引 Python
【100天精通python】Day23:正则表达式,基本语法与re模块详解示例
【100天精通python】Day23:正则表达式,基本语法与re模块详解示例
107 0
|
7月前
正则表达式语法讲解
正则表达式语法讲解
57 0
Python正则表达式语法快速入门
正则表达式需要与相关函数共同使用,对函数的学习可以参考: Python正则表达式所有函数详解
|
前端开发
前端知识案例86-javascript基础语法-正则表达式
前端知识案例86-javascript基础语法-正则表达式
67 0
前端知识案例86-javascript基础语法-正则表达式
|
前端开发
前端知识案例92-javascript基础语法-常见正则表达式
前端知识案例92-javascript基础语法-常见正则表达式
76 0
前端知识案例92-javascript基础语法-常见正则表达式
|
JavaScript
js基础笔记学习202正则表达式语法3量词
js基础笔记学习202正则表达式语法3量词
73 0
js基础笔记学习202正则表达式语法3量词
|
JavaScript
js基础笔记学习200正则表达式语法1
js基础笔记学习200正则表达式语法1
76 0
js基础笔记学习200正则表达式语法1