【问题标题】:Regex for SIP and SIPS URIsSIP 和 SIPS URI 的正则表达式
【发布时间】:2019-08-15 15:28:19
【问题描述】:

示例 SIP URI

   sip:alice@atlanta.com
   sip:alice:secretword@atlanta.com;transport=tcp
   sips:alice@atlanta.com?subject=project%20x&priority=urgent
   sip:+1-212-555-1212:1234@gateway.com;user=phone
   sips:1212@gateway.com
   sip:alice@192.0.2.4
   sip:atlanta.com;method=REGISTER?to=alice%40atlanta.com
   sip:alice;day=tuesday@atlanta.com

我创建的正则表达式^(sip|sips):([^@]+)@(.+)

我想要实现的是 @ 是可选的,如果 @is 之前和之后 @ 应该在那里,否则在 sip 之后:任何东西都可以接受

【问题讨论】:

  • 我的回答对您有帮助/有用吗?如果它为你醒来,请考虑接受。

标签: java regex regex-negation regex-group


【解决方案1】:

你可以使用

^(sips?):([^@]+)(?:@(.+))?$

请参阅regex demo。

详情

  • ^ - 字符串开头
  • (sips?) - 第 1 组:sip 或 sips
  • : - 冒号
  • ([^@]+) - 第 2 组:除 @ 之外的 1 个或多个字符
  • (?:@(.+))? - 一个可选的非捕获组:
    • @ - 一个 @ 字符
    • (.+) - 第 3 组:除换行符之外的任何 0+ 个字符,尽可能多
  • $ - 字符串结束。

注意:如果您将模式与 .matches() 方法一起使用,^ 和 $ 是多余的,可以从模式中删除,因为该方法需要完整的字符串匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多