我希望将字符串中的第一个字母大写。我已经设法通过阅读这里的例子来组合一些东西。但是,我试图获得任何以O'分成2个字符串,以便每个字符串大写。到目前为止我有这个:
\b([^\W_\d](?!')[^\s-]*) *
省略了选择X'从任何字符串X' XYZ。这适用于在'之后将部分资本化,但不会使X'大写。此外,由于它不是特定于O'因此我变成了我。说明目标: o'马利应该去O&#; Malley o' malley应该去O&#;; Malley's 不应该去Don 我应该去找我 (顺便说一句,我想省略任何以数字开头的字符串,比如23F,这似乎与我所拥有的一致) 如何使其特定于以O'开头的字符串? THX
答案 0 :(得分:1)
如果您使用以下模式:
([oO])'([\w']+)|([\w']+)
然后你可以通过调用:
来访问每个单词match[0] == 'o' || match[1] == 'name' #if word is "o'name"
match[2] == 'word' #if word is "word"
如果它是上述两个中的一个,那么其他的将是空白的,即如果word == "word"
那么
match[0] == match[1] == ""
因为没有o'
前缀。
测试示例:
>>> import re
>>> string = "o'malley don't i'm hello world"
>>> match = re.findall(r"([oO])'([\w']+)|([\w']+)",string)
>>> match
[('o', 'malley', ''), ('', '', "don't"), ('', '', "i'm"), ('', '', 'hello'), ('', '', 'world')]
注意:这是用于python的。这可能不适用于所有发动机。