【问题标题】:Java regex to match a pattern用于匹配模式的 Java 正则表达式
【发布时间】:2012-11-14 17:24:30
【问题描述】:

我是 Java 新手。请帮助我使用 Java 正则表达式来匹配模式并检索值。 我需要匹配下面的模式:

\# someproperty=somevalue // this is a new property

\#someproperty=somevalue // this is a new property

我必须匹配上述模式(可能包含空格),我需要检索"someproperty""somevalue"

我尝试了下面的模式,但它只匹配 someproperty=somevalue ,开头没有 "#" 。请帮帮我。

Pattern propertyKeyPattern = Pattern.compile("^\\s*(\\S+?)\\s*=.*?");

【问题讨论】:

  • 删除^或在其后添加#
  • # this is a new property 是字符串的一部分吗?还是评论?
  • 最后不需要勉强匹配。只需删除 ? 并添加 $ 即可。顺便说一句,如果您使用的是Matcher.matches,那么锚点是隐式的,您不需要放置它们。

标签: java regex


【解决方案1】:

String a=yourString.replaceAll("[^\w\s]",""); 通过使用它,您将获得“someproperty”和“somevalue”字符串,然后您可以检查它。如需更多信息,请清楚地发布您的问题。

【讨论】:

    【解决方案2】:

    如果要匹配整个字符串并查找模式,例如“\# someproperty =some value”。 试试正则表达式

    ^\\#\s*(\S+?)\s*=(.*)$
    

    作为Java字符串,是

    "^\\\\#\\s*(\\S+?)\\s*=(.*)$"
    

    字符串\# someproperty = a some value的匹配结果是

    matches() = Yes
    
    find()    = Yes
    
    group(0)  = \# someproperty = a some value
    
    group(1)  = someproperty
    
    group(2)  = a some value
    

    【讨论】:

      猜你喜欢
      • 2016-04-24
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多