/[\w|A-Z]{1,3}[A-Z]/g但我只想匹配单词的前3个字符
例如:
I WANt THE FIRst 3 CHAr OF WORds ONLy.
这是为快速演讲者准备的:任何单词的开头都要大写。
最好的可能是:(前3个字符((单词或空格的其余部分(
https://regex101.com/r/PCi8Dn/2
谢谢!
原始答案
使用正向前瞻((?=[pattern]
(进行匹配,而不包括在匹配中。
[A-Z]{1,3}(?=[a-z])
似乎可以做你想做的事(如果我正确理解你的规范(。
你可以在这里看到它的作用。
规范澄清后的新答案
我认为这是你想要的:
(S{1,3})(S*[s.]+)
细分为:
- 第一捕获组:
(S{1,3})
最多匹配3个非空格字符(使用S
而不是w
,因为我认为您希望将字符与像à
这样的变音符号和像'
这样的单词中间的标点符号相匹配。
- 第二捕获组:
(S*[s.]+)
匹配零个或多个非空格字符(每个单词中的剩余字符(,后跟一个或多个子分隔符(空格或句点(。我将句点作为分隔符,以匹配最后一个单词。您可能需要根据自己的具体需要调整该部分。
请在此处查看它的实际操作。