在每个大写字母前附加一个点,然后将单词小写
Append a dot before each Capital letter and then lowercase the word
我对正则表达式还很陌生,因此我决定寻求帮助。
情况如下:我必须将文本从这种格式 [a-z][A-Z][0-9] 转换为这种格式 [a-z][0-9][.],其中每个大写字母或字母数字字符(除非 letter/number 是第一个单词)应该放置一个点 .
然后将整个单词小写。
这是替换模式的示例:
从这个IAmHuman
到这个i.am.human
从这个 HelloGuys2
到这个 hello.guys.2
从这个 isthereany1heRe
到这个 isthereany.1he.re
我帮你出主意!
我可以建议一个两步法:
查找: (?<!\S)[[:upper:][:digit:]]
替换:\l[=11=]
如果大写字母 ([:upper:]
) 或数字 ([:digit:]
) 前有非空格,则 (?<!\S)
匹配失败,然后是
查找:(?<=\S)[[:upper:][:digit:]]
替换:.\l[=16=]
其中 (?<=\S)
要求大写字母或数字前有一个非空格。
替换不同,所以我们需要2个步骤。 [=18=]
指的是整个匹配,\l
将匹配的字符转为小写。
您可以使用 [A-Z]
代替 [:upper:]
,可以使用 \d
代替 [:digit:]
。
结果:
我对正则表达式还很陌生,因此我决定寻求帮助。
情况如下:我必须将文本从这种格式 [a-z][A-Z][0-9] 转换为这种格式 [a-z][0-9][.],其中每个大写字母或字母数字字符(除非 letter/number 是第一个单词)应该放置一个点 .
然后将整个单词小写。
这是替换模式的示例:
从这个IAmHuman
到这个i.am.human
从这个 HelloGuys2
到这个 hello.guys.2
从这个 isthereany1heRe
到这个 isthereany.1he.re
我帮你出主意!
我可以建议一个两步法:
查找: (?<!\S)[[:upper:][:digit:]]
替换:\l[=11=]
如果大写字母 ([:upper:]
) 或数字 ([:digit:]
) 前有非空格,则 (?<!\S)
匹配失败,然后是
查找:(?<=\S)[[:upper:][:digit:]]
替换:.\l[=16=]
其中 (?<=\S)
要求大写字母或数字前有一个非空格。
替换不同,所以我们需要2个步骤。 [=18=]
指的是整个匹配,\l
将匹配的字符转为小写。
您可以使用 [A-Z]
代替 [:upper:]
,可以使用 \d
代替 [:digit:]
。
结果: