基于大写字母提取的正则表达式

时间:2019-01-09 23:24:49

标签: c# regex

您好,有人可以使用C#正则表达式来将其拆分为两个单词吗?

DROP INDEX IF EXISTS i_postcode;
CREATE TABLE IF NOT EXISTS sales(
id TEXT,price INTEGER,sale_date TEXT,postcode TEXT,
prop_type CHAR,newbuild CHAR,leasetype CHAR,
paon TEXT,saon TEXT,street TEXT,locality TEXT,
town TEXT,district TEXT,county TEXT,category CHAR,status CHAR
);
EXPLAIN QUERY PLAN 
SELECT price, sale_date, postcode, paon, street, locality FROM sales WHERE postcode LIKE 's%';
CREATE INDEX  IF NOT EXISTS i_postcode ON sales(postcode collate nocase);
EXPLAIN QUERY PLAN 
SELECT price, sale_date, postcode, paon, street, locality FROM sales WHERE +postcode LIKE 's%';
EXPLAIN QUERY PLAN 
SELECT price, sale_date, postcode, paon, street, locality FROM sales WHERE postcode LIKE 's%';

2 个答案:

答案 0 :(得分:2)

这可以通过不同的方式解决;一种方法是以下

string source = "GetForeignKey";

var result = Regex.Matches(source, "[A-Z]").OfType<Match>().Select(x => x.Index).ToArray();
string a, b;
if (result.Length > 1)
{
    a = source.Substring(0, result[1]);
    b = source.Substring(result[1]);
}

答案 1 :(得分:-1)

尝试以下正则表达式

(?![A-Z][a-z]+Key)[A-Z][a-z]+|[A-Z][a-z]+Key

代码

var matches = Regex.Matches(input, @"(?![A-Z][a-z]+Key)[A-Z][a-z]+|[A-Z][a-z]+Key");
        foreach (Match match in  matches)
            match.Groups[0].Value.Dump();

用于拆分

matches.OfType<Match>().Select(x => x.Value).ToArray().Dump();      

Fiddle