正则表达式 - 选择具有多个大写字母的行


Regex - Select lines having more than one uppercase

我有一条短信,像这样:

1: hello people on stackoverflow, this here is my sample string
2: to show you what I want to achive. Here are some lines
3: I want to select
4: asdAsasDAqdVGevSerE312d1d14fF2Asdc
5: klhkblkljhb2k324JKgnqwwuUIH82mjkaw
6: heLloIsWhatIwantToSelectToo
7: thisLineshouldnotbeselected
8: butThislineshouldbeselectedasWell
9: and some more lines here...

现在我正在测试几个小时,以获得正则表达式来选择具有 1 个以上大写字符且没有空格的行。

所以我想选择第 4568 行。

我所有的尝试都匹配具有 2 个大写的行,例如 yXXy,但我想选择具有 XyyXXyXy 等它们的行。

正则表达式可以吗?

需要它们稍后在 php 中使用...

Smaple RegExp im on atm:

^([a-zA-Z0-9=]?(?! )){2,}$

真的有更多,但由于我被困在上面解释的选择中......我不知道该写什么^^

一个正则表达式,用于选择具有 1 个以上大写字符且没有空格的行。

您可以使用以下正则表达式:

/^'S*[A-Z]'S*[A-Z]'S*$/

这里的例子

  • ^ - 表示行首的锚点
  • 'S* - 零个或多个非空格字符
  • [A-Z] - 大写字符
  • 'S*[A-Z]'S* - 大写字符周围有零个或多个非空格字符
  • $ - 表示行尾的锚点

相应地调整标志。在演示中,我使用了全局和多行标志(但 PHP 没有g标志)。

^'S*[A-Z]'S*[A-Z]'S*$
  • ^字符串的开头
  • 'S*零个或多个非空格字符
  • [A-Z]大写字符
  • 字符串末尾$

PHP 中的正则表达式匹配:preg_match("/^'S*[A-Z]'S*[A-Z]'S*$/", $text)

([a-z0-9]*[A-Z][a-z0-9]*[A-Z]'w*)

这似乎基于 http://regexr.com/

基本上我使用 *,这意味着任何 ammount 都是可选的,因此它可以从 0 到任何数字正则表达式支持从 a-z 或 0-9 的字符,然后我希望至少有 1 个大写字母,然后是 0 到

无限个字符从 a-z 到 0-9,另一个大写,然后是任何非空格字符。