正则表达式将单词大写
Regex to capitalize words
我正在使用文本编辑器将参考文件中的论文标题大写。
我有类似的结构
...
Title = {Direct synthesis of antimicrobial coatings based on tailored bi-elemental nanoparticles},
journal={APL Mat.},
...
我只想将标题部分的单词大写,这样它就变成了
...
Title = {Direct Synthesis of Antimicrobial Coatings Based on Tailored Bi-Elemental Nanoparticles},
journal={APL Mat.},
...
我尝试使用 lookbehing 正则表达式按以下方式搜索 每个 单词后跟单词 "Title"
(?<=Title)(\b.+?\b)
我想用
代替它
\u
对于文本中的每一次出现。
但是我的代码只选择 Title 的 "e" 和 Direct 的 "D" 之后的字符,以及 在那之后找不到其他出现的地方。
你能帮帮我吗?谢谢。
您可以使用
(\G(?!^)(?:[^}\n\w]+(?:o[fn]|in|the|by|for|to|and*|a))*[^}\n\w]+|Title\s*=\s*\{)(\w+)
并替换为 \u
。请参阅 regex demo(由于 regex101 似乎不支持 \u
运算符,它略有修改)。
详情
(\G(?!^)(?:[^}\n\w]+(?:o[fn]|in))*[^}\n\w]+|Title\s*=\s*\{)
- 两种选择之一:
\G(?!^)(?:[^}\n\w]+(?:o[fn]|in|the|by|for|to|and*|a))*[^}\n\w]+
:
\G(?!^)
- 上一场比赛结束
(?:[^}\n\w]+(?:o[fn]|in))*
- 0 次或多次重复
[^}\n\w]+
- 除了 }
、LF 和一个单词 char 之外的 1 个或多个字符
(?:o[fn]|in|the|by|for|to|and*|a)
- of
、on
或 in
等(在此处添加更多应从大写中排除的单词)
[^}\n\w]+
- 除了 }
、LF 和一个单词 char 之外的 1 个或多个字符
|
- 或
Title\s*=\s*\{
- Title
、=
包含 0+ 个空格和一个 {
(\w+)
- 第 2 组:一个或多个单词字符。
我正在使用文本编辑器将参考文件中的论文标题大写。
我有类似的结构
...
Title = {Direct synthesis of antimicrobial coatings based on tailored bi-elemental nanoparticles},
journal={APL Mat.},
...
我只想将标题部分的单词大写,这样它就变成了
...
Title = {Direct Synthesis of Antimicrobial Coatings Based on Tailored Bi-Elemental Nanoparticles},
journal={APL Mat.},
...
我尝试使用 lookbehing 正则表达式按以下方式搜索 每个 单词后跟单词 "Title"
(?<=Title)(\b.+?\b)
我想用
代替它\u
对于文本中的每一次出现。 但是我的代码只选择 Title 的 "e" 和 Direct 的 "D" 之后的字符,以及 在那之后找不到其他出现的地方。
你能帮帮我吗?谢谢。
您可以使用
(\G(?!^)(?:[^}\n\w]+(?:o[fn]|in|the|by|for|to|and*|a))*[^}\n\w]+|Title\s*=\s*\{)(\w+)
并替换为 \u
。请参阅 regex demo(由于 regex101 似乎不支持 \u
运算符,它略有修改)。
详情
(\G(?!^)(?:[^}\n\w]+(?:o[fn]|in))*[^}\n\w]+|Title\s*=\s*\{)
- 两种选择之一:\G(?!^)(?:[^}\n\w]+(?:o[fn]|in|the|by|for|to|and*|a))*[^}\n\w]+
:\G(?!^)
- 上一场比赛结束(?:[^}\n\w]+(?:o[fn]|in))*
- 0 次或多次重复[^}\n\w]+
- 除了}
、LF 和一个单词 char 之外的 1 个或多个字符
(?:o[fn]|in|the|by|for|to|and*|a)
-of
、on
或in
等(在此处添加更多应从大写中排除的单词)
[^}\n\w]+
- 除了}
、LF 和一个单词 char 之外的 1 个或多个字符
|
- 或Title\s*=\s*\{
-Title
、=
包含 0+ 个空格和一个{
(\w+)
- 第 2 组:一个或多个单词字符。