在大写/大写字符上拆分字符串

时间:2011-02-21 08:16:09

标签: regex

我有以下输入:

MaintanceGie?\195?\159mannFlock
SupportGie?\195?\159mannFlock
ABCSaskDgfskSblabla

并搜索一个正则表达式,它给出了以下结果:

Maintance Gie?\195?\159mann Flock
Support Gie?\195?\159mann Flock
ABC Sask Dgfsk Sblabla

对于前两个字符串,我可以使用正则表达式([A-Z]+)([^A-Z]*) 为了使这个正则表达式有效,我需要做些什么改变?

感谢您的任何建议。

3 个答案:

答案 0 :(得分:4)

您可以使用正则表达式:

(?=[A-Z][^A-Z])

Ideone Link

答案 1 :(得分:1)

以下是在Perl中执行此操作的方法:

#!/usr/bin/perl
use strict;
use warnings;
use 5.10.1;

while(<DATA>) {
    chomp;
    s/(.)([A-Z][^A-Z])/$1 $2/g;
    say $_;
}

__DATA__
MaintanceGie?\195?\159mannFlock
SupportGie?\195?\159mannFlock
ABCSaskDgfskSblabla

<强>输出:

Maintance Gie?\195?\159mann Flock
Support Gie?\195?\159mann Flock
ABC Sask Dgfsk Sblabla

答案 2 :(得分:0)

([A-Z](?=[^A-Z]))

这将找到任何大写字母后跟小写