【问题标题】:Regex: Not capture after a specific character if it exists正则表达式:如果存在,则在特定字符之后不捕获
【发布时间】:2016-02-04 11:39:13
【问题描述】:

我正在尝试构建一个正则表达式,以便在字符串中存在特定字符时不捕获它们:

david.com/destination_in=Los+Angeles&1234

david.com/destination_in=Los+Angeles

david.com/destination_in=Los+Angeles#1234

我只想在上述所有情况下返回 Los+Angeles

我一直在尝试类似.*david.com/destination_in=(.*)(?:&*|#*)

但无法获得所有情况下的期望结果(城市后有或没有&和#)。

【问题讨论】:

  • 规定允许的模式和拒绝的模式总是好的。
  • 你在哪里使用这个正则表达式?没有量词的. 是单个字符,* 是 0 个或多个字符 + 是一个或多个字符。
  • 类似this ?

标签: regex


【解决方案1】:
(?<=destination_in=)[a-zA-Z0-9+_-]+

此正则表达式应仅在您的示例中选择“Los+Angeles”,并且在匹配对象方面很灵活

【讨论】:

    猜你喜欢
    • 2023-01-10
    • 2018-07-19
    • 2019-02-16
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    相关资源
    最近更新 更多