需要将句子中每个单词的第一个字母大写,但是我的正则表达式也是我在'm'中的大写字母.
完整的表达是这样的:
/(?:^\w|[A-Z]|\b\w)/g
Run Code Online (Sandbox Code Playgroud)
这里的问题(我认为)是\b\w抓住单词边界后的第一个字母.我假设单引号表示一个字边界也因此在资本m的I'm进入I'M.
任何人都可以帮我改变表达式,在单引号后排除'm'吗?
提前致谢.
小智 2
在语言中间找到真正的单词中断可能
比使用正则表达式单词边界更复杂一些。
( \s* [\W_]* ) # (1), Not letters/numbers,
( [^\W_] ) # (2), Followed by letter/number
( # (3 start)
(?: # -----------
\w # Letter/number or _
| # or,
[[:punct:]_-] # Punctuation
(?= [\w[:punct:]-] ) # if followed by punctuation/letter/number or '-'
| #or,
[?.!] # (Add) Special word ending punctuation
)* # ----------- 0 to many times
) # (3 end)
Run Code Online (Sandbox Code Playgroud)
( \s* [\W_]* ) # (1), Not letters/numbers,
( [^\W_] ) # (2), Followed by letter/number
( # (3 start)
(?: # -----------
\w # Letter/number or _
| # or,
[[:punct:]_-] # Punctuation
(?= [\w[:punct:]-] ) # if followed by punctuation/letter/number or '-'
| #or,
[?.!] # (Add) Special word ending punctuation
)* # ----------- 0 to many times
) # (3 end)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |