Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在大写字符(camelCase)之前的位置匹配小写字符?_Regex_Typescript - Fatal编程技术网

Regex 在大写字符(camelCase)之前的位置匹配小写字符?

Regex 在大写字符(camelCase)之前的位置匹配小写字符?,regex,typescript,Regex,Typescript,我在一段Typescript代码中有一个正则表达式,用于匹配有空格、破折号/下划线或大小写的字符串 因为这个模式也用于以后拆分字符串,在camelcase的情况下,我实际上需要在camelcase/大写字符之前匹配小写字符,因为我试图捕获camelcase。我试图将一个字符串简化为两个“缩写”,因此如果我输入别名,例如“saddexProductions”或“Saddex Productions”等,则输出将为“SP”。如果没有指示字符串由两部分组成,例如“Saddexproductions”,

我在一段Typescript代码中有一个正则表达式,用于匹配有空格、破折号/下划线或大小写的字符串

因为这个模式也用于以后拆分字符串,在camelcase的情况下,我实际上需要在camelcase/大写字符之前匹配小写字符,因为我试图捕获camelcase。我试图将一个字符串简化为两个“缩写”,因此如果我输入别名,例如“saddexProductions”或“Saddex Productions”等,则输出将为“SP”。如果没有指示字符串由两部分组成,例如“Saddexproductions”,则输出将为“Sa”。如果我与字符串中间的大写字符匹配,并将其拆分,则该字符将被删除,输入的结果“SADDeExtudio”将是“SR”。 以下是我到目前为止的想法:

const splitRegex: RegExp = /\s|(?<=.)([a-z](?<=[A-Z]{1}))|\-|\_/;
const splitRegex:RegExp=/\s |(?您可以使用

常量splitRegex:RegExp=/[-\us]|([a-z](?=[a-z])/;
详情:

  • [-\uS]
    -与
    -
    -
    或空格匹配的字符类
  • |
    -或
  • ([a-z](?=[a-z]))
    -一个ID=1的捕获组,它匹配一个小写ASCII字母,后跟一个大写ASCII字母,而不将后者添加到整体匹配值中(因为它位于非消费正则表达式构造的正向前瞻中)

在您的正则表达式中,
(?问题是,我不想匹配大写字符本身,只想匹配紧跟在它前面的小写字符,而不是任何小写字符-只要后跟大写字符。好的,试试
const splitRegex:RegExp=/[-\s]|([a-z](?=[a-z]))/
@WiktorStribiżew成功了。谢谢!
(?<=.)([a-z](?<=[A-Z]{1}))