【发布时间】:2016-10-15 06:48:16
【问题描述】:
假设我有一个这样的数组:
> names
=> ["John", "Van", "der", "and", "an", "the boys and John Smith"]
如何从该数组中选择 John、Van 和 the boys and John Smith?
我尝试了this regex,但它错过了最后一个字符串,这是最棘手的:
/^[A-Z]\w*/
什么是更完整的方法,它可以捕获其他情况,即大写单词出现在我可能丢失的字符串中间?
编辑 1
我希望它能够捕获的另一个字符串是:John Van der Lyn,其中有一个名字的名字和姓氏中有一个常用字母。
【问题讨论】:
-
匹配所有带有大写单词的字符串还是只匹配大写名称?
-
@sagarpandya82 我会接受所有带有大写单词的字符串,因为我相信大写的名字是不可能的。但是,如果您有关于仅捕获大写名称的建议……请分享,因为这是最终目标。
-
^(?=.*\b[A-Z]).* -
@revo 这看起来是合法的。继续并将其添加为带有简短描述的答案,我会接受它。谢谢!
-
如果您删除字符串开头的锚点
/[A-Z]\w*/,您的正则表达式会起作用