• Eclipse中使用正则表达式搜索替换


    Eclipse中使用正则表达式搜索替换

    分类:software | 标签: 正则表达   替换   eclipse  
    2011-11-29 11:28 阅读(1930)评论(0)

    最近在eclipse开发中用到正则表达式搜索替换,顺便总结。

    搜索:^(.*)<h:outputText.*value=.*"#{(.*)}"(.*)$
    替换:$1<h:outputText value= "#{strings.trim($2,30)}"$3

    实现的功能是能找到代码中类似:

    <h:outputText value="#{appl.departmentName}" />

    的行。并替换为:

    <h:outputText value= "#{strings.trim(appl.applicantName,30)}" />                                  

    在上一组搜索表达式基础上作了些改进:

    搜索:^(.*)<h:outputText(.*R??.*)value=p{Space}*"#{(.*)}"(.*)$
    替换:$1<h:outputText$2value="#{strings.trim($3,30)}"$4

    这组条件考虑到了中间带换行的情况。

    这种正则表达式的编写有3个问题要注意:

    1.有些特殊字符需要转意。例如:{  (   这种字符被正则表达式语法赋予了新意义,因此要用{  ( 来代表原字符。

    2.用( )对来截取字段中需要保留的变化部分。再用$1 , $2 , $3 ...$n 在替换字段里复用他们。

    3.注意eclipse里的换行是 R  ,不是下面文档里的   。

    以下是正则表达式语法的详细列举:

    Construct Matches  Characters Character classes Predefined character classes POSIX character classes (US-ASCII only) Classes for Unicode blocks and categories Boundary matchers Greedy quantifiers Reluctant quantifiers Possessive quantifiers Logical operators Back references Quotation Special constructs (non-capturing)
    x The character x
    \ The backslash character
    n The character with octal value 0n (0 <= n <= 7)
    nn The character with octal value 0nn (0 <= n <= 7)
    mnn The character with octal value 0mnn (0 <= m <= 3, 0 <= n <= 7)
    xhh The character with hexadecimal value 0xhh
    uhhhh The character with hexadecimal value 0xhhhh
    The tab character (&apos; &apos;)
    The newline (line feed) character (&apos; &apos;)
    The carriage-return character (&apos; &apos;)
    f The form-feed character (&apos; &apos;)
    a The alert (bell) character (&apos;\u0007&apos;)
    e The escape character (&apos;\u001B&apos;)
    cx The control character corresponding to x
    [abc] a, b, or c (simple class)
    [^abc] Any character except a, b, or c (negation)
    [a-zA-Z] a through z or A through Z, inclusive (range)
    [a-d[m-p]] a through d, or m through p: [a-dm-p] (union)
    [a-z&&[def]] d, e, or f (intersection)
    [a-z&&[^bc]] a through z, except for b and c: [ad-z] (subtraction)
    [a-z&&[^m-p]] a through z, and not m through p: [a-lq-z](subtraction)
    . Any character (may or may not match line terminators)
    d A digit: [0-9]
    D A non-digit: [^0-9]
    s A whitespace character: [ x0Bf ]
    S A non-whitespace character: [^s]
    w A word character: [a-zA-Z_0-9]
    W A non-word character: [^w]
    p{Lower} A lower-case alphabetic character: [a-z]
    p{Upper} An upper-case alphabetic character:[A-Z]
    p{ASCII} All ASCII:[x00-x7F]
    p{Alpha} An alphabetic character:[p{Lower}p{Upper}]
    p{Digit} A decimal digit: [0-9]
    p{Alnum} An alphanumeric character:[p{Alpha}p{Digit}]
    p{Punct} Punctuation: One of !"#$%&&apos;()*+,-./:;<=>?@[]^_`{|}~
    p{Graph} A visible character: [p{Alnum}p{Punct}]
    p{Print} A printable character: [p{Graph}]
    p{Blank} A space or a tab: [ ]
    p{Cntrl} A control character: [x00-x1Fx7F]
    p{XDigit} A hexadecimal digit: [0-9a-fA-F]
    p{Space} A whitespace character: [ x0Bf ]
    p{InGreek} A character in the Greek block (simple block)
    p{Lu} An uppercase letter (simple category)
    p{Sc} A currency symbol
    P{InGreek} Any character except one in the Greek block (negation)
    [p{L}&&[^p{Lu}]]  Any letter except an uppercase letter (subtraction)
    ^ The beginning of a line
    $ The end of a line
     A word boundary
    B A non-word boundary
    A The beginning of the input
    G The end of the previous match
     The end of the input but for the final terminator, if any
    z The end of the input
    X? X, once or not at all
    X* X, zero or more times
    X+ X, one or more times
    X{n} X, exactly n times
    X{n,} X, at least n times
    X{n,m} X, at least n but not more than m times
    X?? X, once or not at all
    X*? X, zero or more times
    X+? X, one or more times
    X{n}? X, exactly n times
    X{n,}? X, at least n times
    X{n,m}? X, at least n but not more than m times
    X?+ X, once or not at all
    X*+ X, zero or more times
    X++ X, one or more times
    X{n}+ X, exactly n times
    X{n,}+ X, at least n times
    X{n,m}+ X, at least n but not more than m times
    XY X followed by Y
    X|Y Either X or Y
    (X) X, as a capturing group
    n Whatever the nth capturing group matched
    Nothing, but quotes the following character
    Q Nothing, but quotes all characters until E
    E Nothing, but ends quoting started by Q
    (?:X) X, as a non-capturing group
    (?idmsux-idmsux)  Nothing, but turns match flags on - off
    (?idmsux-idmsux:X)   X, as a non-capturing group with the given flags on - off
    (?=X) X, via zero-width positive lookahead
    (?!X) X, via zero-width negative lookahead
    (?<=X) X, via zero-width positive lookbehind
    (?<!X) X, via zero-width negative lookbehind
    (?>X) X, as an independent, non-capturing group
  • 相关阅读:
    排序算法最强总结及其代码实现
    程序员面试常问的小算法总结
    Docker部署Scrapy-redis分布式爬虫框架(整合Selenium+Headless Chrome网页渲染)
    使用亚马逊AWS云服务器进行深度学习——免环境配置/GPU支持/Keras/TensorFlow/OpenCV
    阿里巴巴MySQL开源中间件Canal入门
    【秒杀系统】秒杀系统实战(四)| 缓存与数据库双写一致性实战
    【秒杀系统】秒杀系统实战(五)| 如何优雅的完成订单异步处理
    把购买数据添加到购物车
    实现自动登陆和记住用户名功能
    自定义登陆标签
  • 原文地址:https://www.cnblogs.com/firstdream/p/4777695.html
Copyright © 2020-2023  润新知