【问题标题】:Regex pattern for "contains not only spaces"“不仅包含空格”的正则表达式模式
【发布时间】:2012-09-24 15:46:03
【问题描述】:

如果字段不能只包含空格,请告诉我需要使用哪种模式。

【问题讨论】:

  • "\s+" 表示“一个或多个任意类型的空格”。
  • 大小写非常重要。已更正。
  • 没人理解我的问题..

标签: java regex


【解决方案1】:

为什么需要使用正则表达式?

str.trim().isEmpty()

【讨论】:

  • 好吧,我用另一种方式做了一点 - str.replace(" ","") 然后是 isEmpty()
【解决方案2】:

你必须使用这个模式。

.*[^ ].*

它可以是任何东西,但不仅仅是空格。

【讨论】:

  • 在 javascript 中,这个正则表达式根本不允许任何空格
【解决方案3】:

假设您指的是任何空格,而不仅仅是空格,\S 将起作用。

Cfr 每个开发者的必备朋友,The regex cheat sheet

【讨论】:

  • 字段可以是“Hi i am”,但不能是“”。它可以包含空格但不能只包含空格
  • @KirillBazarov:如果您的字符串与 \S 匹配,则意味着它至少有一个字符不是空格。它仍然可以包含空格。
  • @DanielHilgarth 确实如此。我认为这就是 OP 的要求。
【解决方案4】:

这很简单。如果您使用的是 java,只需编写此代码。 例如:-

classVariable.getname().trim().equal("")

通过这个您可以检查该变量是否只包含空格。

【讨论】:

    【解决方案5】:

    我有一个看起来很重,但实现起来并不难

    没有空格的模式:

    ^[模式]*[没有空格的模式][模式]*$

    示例:

    -模式:a-zA-ZÀ-ÿ '-

    (注意它允许空格)

    [a-zA-ZÀ-ÿ '-]

    没有空格 =

    ^[a-zA-ZÀ-ÿ '-]*[a-zA-ZÀ-ÿ'-][a-zA-ZÀ-ÿ '-]*

    当然,如果您根本不允许空间,则不需要这样做。

    你可以在https://regexr.com/上测试你的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 2020-08-30
      相关资源
      最近更新 更多