正则表达式为camelCase添加空间 - 但如果存在尾随的upperCase字母则不会

时间:2016-02-08 19:18:13

标签: regex

所以我发现了这个 - 工作代码示例

@component({...}) class MyTest { private static text: string = ''; public static setText(text:string) { this.text = text; } }

但是,我并不希望它像#34; AccountUserID"到"帐户用户I D" - 所以如果存在一个尾随的大写字母,基本上没有间距

任何人都可以向我展示一种更好的平易近人的方式 - 可能使用捕获组和负数字标识符。

谢谢!

2 个答案:

答案 0 :(得分:3)

如果支持lookbehind,那么您可以使用:

(?<![A-Z])\B(?=[A-Z])

RegEx Demo

仅用" "

替换它

答案 1 :(得分:0)

使用此模式:

_Z6mySum2R6myArea:
.LFB1:
    .cfi_startproc
    .cfi_personality 0x3,__gxx_personality_v0
    pushq   %rbp
    .cfi_def_cfa_offset 16
    .cfi_offset 6, -16
    movq    %rsp, %rbp
    .cfi_def_cfa_register 6
    pushq   %rbx
    movq    %rdi, -32(%rbp)
    movl    $0, %eax
    movq    %rax, -24(%rbp)
    movl    $0, -16(%rbp)
    jmp .L8
    .cfi_offset 3, -24
.L11:
    movl    $0, -12(%rbp)
    jmp .L9
.L10:
    movl    -16(%rbp), %eax
    movl    -12(%rbp), %edx
    movq    -32(%rbp), %rcx
    movslq  %edx, %rbx
    movslq  %eax, %rdx
    movq    %rdx, %rax
    salq    $2, %rax
    addq    %rdx, %rax
    addq    %rax, %rax
    addq    %rbx, %rax
    movl    (%rcx,%rax,4), %eax
    cvtsi2sd    %eax, %xmm0
    movsd   -24(%rbp), %xmm1
    addsd   %xmm1, %xmm0
    movsd   %xmm0, -24(%rbp)
    addl    $1, -12(%rbp)
.L9:
    cmpl    $9, -12(%rbp)
    setle   %al
    testb   %al, %al
    jne .L10
    addl    $1, -16(%rbp)
.L8:
    cmpl    $9, -16(%rbp)
    setle   %al
    testb   %al, %al
    jne .L11
    movq    -24(%rbp), %rax
    movq    %rax, -40(%rbp)
    movsd   -40(%rbp), %xmm0
    popq    %rbx
    leave
    .cfi_def_cfa 7, 8
    ret
    .cfi_endproc
  <= mySum3 and mySum4 had different labels ... but identical instructions!

并用白色空间替换
Demo