提问人:Hank K 提问时间:10/7/2022 更新时间:10/7/2022 访问量:48
使用 regex/notepad++ 将 UPPERCASE: 更改为 Proper Case: that end with colon:
Change UPPERCASE: to Proper Case: that end with colon: using regex/notepad++
问:
目前有以下我找到大写字母的地方:并将其更改为粗体并将其保留为大写字母:
我宁愿将其更改为粗体正确大小写:。
17
00:00:37,689 --> 00:00:39,863
BOTH: ♪ Put on a happy, happy, happy ♪
20
00:00:43,260 --> 00:00:44,651
MR. OWENS: Hello!
29
00:01:05,717 --> 00:01:07,413
NURSE #1: You want me to inject him?
56
00:02:29,061 --> 00:02:30,960
MALE NARRATOR: Two Sockatoos, one bullet...
844
00:46:57,418 --> 00:46:59,462
TOGETHER: Seriously?
这是我目前用来在修改它时查找和替换的内容:
Find 1U: ([A-Z0-9][A-Z0-9. -',-:&@#]+)(?=:\B)
Replace 1: \<b\>$1\<\/b\>
然后我用它来将第一个单词更改为正确的大小写,但不知道在涉及 SPACES 时如何使其工作。
Step #1 Make it lowercase after the above <b>SANDRA</b>
---------------------------------------------------------------------
Find: <b>([A-Z0-9][A-Z0-9. -',-:&@#]+)</b>
Replace: <b>\L\1</b>
Step #2 Now change it to Proper Case <b>sandra</b>
---------------------------------------------------------------------
Find: <b>([a-z])
Replace: <b>\U$1
好吧,别笑了,这是我能想到的最好的办法。仍然是带有正则表达式/记事本++的n00b
如果我能一步到位,那就太好了。
提前致谢
答:
1赞
Wiktor Stribiżew
10/7/2022
#1
你不能把这三个步骤打包成一个,但你可以用两个步骤来做。第一步是你的第一步,如果它按预期工作,你可以继续使用这种方法(替换为(请不要转义尖括号))。([A-Z0-9][A-Z0-9. -',-:&@#]+)(?=:\B)
<b>$1</b>
下一步是将第一个单词 char 转换为大写字符,其余单词转换为小写字符。
查找内容:替换为: (?:\G(?!^)|<b>)\s*\K(\w)(\S*)(?=.*?</b>:)
\U$1\L$2
细节:
(?:\G(?!^)|<b>)
-<b>
或上一场比赛的结束\s*
- 零个或多个空格\K
- 省略匹配的文本(\w)
- 第 1 组:单词字符(\S*)
- 第 2 组:除空格以外的任何零个或多个字符(?=.*?</b>:)
- 与紧跟任何零或多个字符(换行符字符除外)的位置匹配的正向前看,尽可能少,然后是 。</b>:
请参阅下面的演示和设置:
评论
1赞
Hank K
10/7/2022
非常感谢教授的课程,非常感谢。;-)
评论