我试图通过使用正则表达式的问题名称来生成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 chars或would UpperCase it in code的正则表达式问题的风格,但不仅仅使用正则表达式。
([a-zA-z])( [a-zA-z])([a-zA-z])
替换:
\1\U2\3
但是,第2组不会出现大写,我不确定如何为所有内容追加public string
和{ get; set;}
,而不是每组。
答案 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
第二,匹配最近的整行:
^(?i)([a-z\d]+)$
并替换为:
public string $1 { get; set;}