【问题标题】:Regex - Find all lines with x letters正则表达式 - 查找所有带有 x 字母的行
【发布时间】:2017-06-02 20:06:21
【问题描述】:

如何选择所有带有 x 字母的行?例如

   A
    12Foo_
    Albania
    Austria
    Azerbaijan
    B
    Bahamas
    Bahrain
    Burundi
    C
    Cabo Verde
    Cambodia
    Cameroon

示例:

如何选择每行一个字母,例如在这种情况下,正则表达式应该只选择 A、B 和 C。

我试过这样:

\S{1}\n

但这会选择行尾的任何单个字符。

Online Regex

【问题讨论】:

  • \b[A-Z]\b 会做到的。
  • /S 匹配非空格,使用\w
  • @sweaver2112,如果行中有数字怎么办?我想我需要\S
  • \w 匹配数字、字母和下划线。
  • @AlexK.,您的正则表达式仅在行中没有数字且我们无法指定字符数量时才有效。

标签: regex


【解决方案1】:

这应该适合您的需要(使用多行选项,即 ^ 和 $ 匹配行的开始/结束):

^[^\S\r\n]*(?:\S[^\S\r\n]*){11}[^\S\r\n]*$

11 是您想要的字符数。

见https://regex101.com/r/RNGT6w/1

【讨论】:

  • 请注意\s 包括\r 和\n,因此这些脏类。
【解决方案2】:

我认为这行得通:

^[A-Z]

【讨论】:

  • 只有当我们谈论一个字母并且它不是数字或字符如 !, ?, _, - ... 并且它不以空格开头时才有效。跨度>
猜你喜欢
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 2023-02-22
  • 2013-10-27
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
相关资源
最近更新 更多