正则表达式 - 转换为CamelCase并切割成立的单词

时间:2014-08-24 22:49:40

标签: regex sublimetext2 sublimetext sublimetext3 boost-regex

问题1

假设我有这个单词realPersonId,并希望在文本中找到并将其替换为不带Id后缀的单词。第一封信需要是资本。我无法获得这笔资金。

示例文字:realPersonId
找到表达式:(\s+)(.*)Id
替换表达式:\1\2
结果:realPerson
通缉结果:RealPerson

问题2

在这个问题上,我没有任何解决方案,我想要的示例文本是用连接文本替换它,最大26个字母的大小。

示例文字:table="EXAMPLE_INFORMATION_123456789"
找到表达式:table="(.*)"
替换表达式:\1
结果:EXAMPLE_INFORMATION_123456789
通缉结果:EXAMPLE_INFORMATION_123456

感谢。

1 个答案:

答案 0 :(得分:1)

问题1解决方案:

Find What: (\w+)Id
Replace With: \u\1

注意:以下修饰符可用于更改替换期间反向引用的大小写:

\l     # first character to lower case
\u     # first character to upper case
\L     # start of lower case conversion
\U     # start of upper case conversion
\E     # end lower/upper case conversion

问题2解决方案:

Find What: table="(.{26})[^"]+"
Replace With: \1

这将捕获正好26个字符并使用捕获组外部的否定类丢弃其余字符,如果您希望使用.{min,26},则.将匹配除换行符之外的任何字符。< / p>