【问题标题】:regex pattern accepting comma and colon接受逗号和冒号的正则表达式模式
【发布时间】:2017-06-13 12:28:17
【问题描述】:

我正在搜索与以下字符串匹配的正则表达式模式。我正在使用这个正则表达式模式,

^;[A-za-z0-9,:]+

上面的正则表达式与下面的不匹配。 我正在寻找与正则表达式模式匹配的所有给定字符串。

:a123,234,444:322 //字符串以分号开头,值用逗号和冒号分隔 ;123,A234:123;123,345,456:999,456 // 以上情况重复条件

;;123,345,C555:123 //字符串以双分号开头

谁能提供匹配上述字符串的正则表达式模式。

【问题讨论】:

  • 你的字符串有冒号:,而你的正则表达式只有分号;。你期待什么样的比赛?
  • 您的字符串包含冒号 (:) 而您的正则表达式不包含。
  • 你的问题不清楚。您能否重写您的问题,以便更容易理解您想要什么和不想要什么。这三个都应该匹配吗?
  • ":a123,234,444:322 //字符串以分号开头"。它实际上以冒号开头。这是笔误吗?
  • 请准确,你要匹配什么,内部值分隔还是完整的字符串?

标签: java regex


【解决方案1】:

这个

[;:]+[A-za-z0-9,;:]+

将适用于您想要的所有三个,see online on regex101

  1. [;:]+:以一个或多个 ;: 开头。
  2. [A-za-z0-9,;:]+:你错过了:

【讨论】:

    【解决方案2】:

    你可以用这个正则表达式匹配上面的内容

    ^;+[A-za-z0-9,;:]+
    

    修改:

    1. ;+ 将匹配 1 个或多个分号
    2. 冒号:已添加到您要匹配的字符中

    【讨论】:

    • 对于第一种情况,OP 说它以分号开头,但在字符串中有一个冒号。我认为这是一个错字,字符串应该以分号开头。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2018-08-22
    • 2013-01-26
    相关资源
    最近更新 更多