正则表达式删除特殊字符和空格然后骆驼案例

时间:2014-10-23 15:51:13

标签: regex

我试图通过使用正则表达式的问题名称来生成C#属性。我有100多个,任务可能会重复,所以值得付出努力。

要转换的字符串:

Do you own your property?
How is it owned?
Relationship to other registered owner
Estimated value of Estate (joint)
Address Line 1
Are any of the children under 18 years old?
Are you interested in safeguarding your assets for your children/beneficiaries?

预期结果:

public string DoYouOwnYourProperty { get; set;}
public string HowIsItOwned { get; set;}
public string RelationshipToOtherRegisteredOwner { get; set;}
public string EstimatedValueOfEstateJoint { get; set;}
public string AddressLine1 { get; set;}
public string AreAnyOfTheChildrenUnder18YearsOld { get; set;}
public string AreYouInterestedInSafeguardingYourAssetsForYourChildrenBeneficiaries { get; set;}

我一直在窥探并发现they would remove special charswould UpperCase it in code的正则表达式问题的风格,但不仅仅使用正则表达式。

started out with this

([a-zA-z])( [a-zA-z])([a-zA-z])

替换:

\1\U2\3

但是,第2组不会出现大写,我不确定如何为所有内容追加public string{ get; set;},而不是每组。

2 个答案:

答案 0 :(得分:1)

在Notepad ++中:

第1步:删除标点符号

替换以下模式:

[^\w\s]

使用空字符串。

第2步:删除空格并将字母设为大写

替换以下模式:

[^\S\r\n]+(\d*\p{L}|\d+)

有了这个:

\U$1

第3步:添加属性语法

替换以下模式:

^(\S+)$

有了这个:

public string $1 { get; set; }

供参考,这是Notepad ++用于正则表达式替换的内容:Boost-Extended Format String Syntax

答案 1 :(得分:1)

您无法使用 regex101.com ,因为其可访问的引擎不支持\U\L替换令牌。但是Notepad ++没问题。

首先,使用此正则表达式匹配这些空格/标点符号及其后续字符:

[^[:alnum:]\n\r](\w)?

替换为

\U$1

enter image description here 第二,匹配最近的整行:

^(?i)([a-z\d]+)$

并替换为:

public string $1 { get; set;}

enter image description here