【问题标题】:Regex get value up until a character正则表达式获取值直到一个字符
【发布时间】:2014-08-16 21:44:54
【问题描述】:

一个示例输入是;

$500 has been received from username.

到目前为止,我有这个正则表达式字符串;

$ \\$(\\d+\\.?\\d*) has been received from

这应该提取余额(如果我是正确的?)问题是,我想不出如何获取用户名的解决方案。用户名字符串是字母数字,因此不能包含句号。我将使用什么来获取 ' ' 之后直到 '.' 的所有字符?

谢谢!

【问题讨论】:

  • 您是否只想捕获值和用户名?
  • 是的,只是“$”后面的数字和用户名。

标签: java regex


【解决方案1】:

根据本站:

http://www.regexplanet.com/advanced/java/index.html

这应该可行:

^\$(\d+\.?\d*) has been received from (.*).$

【讨论】:

    【解决方案2】:

    ([^.]+) 捕获所有内容,直到找到一个点。

    ^\$(\d+\.?\d*) has been received from ([^.]+)\.$
    

    反斜杠的原因是紧随其后的字符是正则表达式语言中的特殊字符。

    在 Java 中使用时,它看起来像这样:

    "^\\$(\\d+\\.?\\d*) has been received from ([^.]+)\\.$"
    

    这里需要额外的反斜杠,因为在 Java 字符串中,反斜杠本身是一个特殊的字符,必须被转义。

    【讨论】:

    • 工作完美,带注释的答案很好,特别是因为我是 java 新手。非常感谢!
    • 我希望您的应用程序禁止在用户名中使用点 ;)
    猜你喜欢
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    相关资源
    最近更新 更多