Regex 确保匹配的字符串至少包含一个大写字符

Regex 确保匹配的字符串至少包含一个大写字符,regex,Regex,给一串 “这是我的大写测试url()。这是我的小写测试url()” 我有一个正则表达式可以找到URL: \(http://www.somedomain.com/(.*?)\) 我是否可以修改此选项,使其仅在路径中包含大写字符时返回url?您可以向前看以检查大写字符: (?=\S*[A-Z])\(http://www.somedomain.com/(.*?)\) ^^^^^^^^^^^^ 它将确保字符串中至少有一个大写字符 如果要确保“检查”保留在括号内,可以使用以下选项: \((?=[^

给一串

“这是我的大写测试url()。这是我的小写测试url()”

我有一个正则表达式可以找到URL:

\(http://www.somedomain.com/(.*?)\)

我是否可以修改此选项,使其仅在路径中包含大写字符时返回url?

您可以向前看以检查大写字符:

(?=\S*[A-Z])\(http://www.somedomain.com/(.*?)\)
^^^^^^^^^^^^
它将确保字符串中至少有一个大写字符


如果要确保“检查”保留在括号内,可以使用以下选项:

\((?=[^)\s]*[A-Z])http://www.somedomain.com/(.*?)\)

不幸的是,如果url后面紧跟着一个大写字符,则此操作不起作用(请参阅)。我已经修改为@JamesHay Woah,我从来没有直接使用过括号以外的字符。。。但这是可以解决的。编辑了我的答案。