【发布时间】:2018-12-09 01:21:22
【问题描述】:
我很难理解为什么我的正则表达式查询除了我告诉正则表达式包含在查询中的符号之外还需要一个额外的字符,所以这是我的正则表达式:
([\-:, ]{1,})[^0-9]
这是我的测试文本:
Test- Product-: 1 --- 3 hour ,--kayak:--rental
它总是包含每个起始词的第一个字符,例如 Product 上的 P 或小时上的 h,我怎样才能防止正则表达式包含这些第一个字符?
我正在尝试获取所有破折号、双点、逗号和空格,不包括数字或任何字符。
【问题讨论】:
-
可能是
[-:, ]+(?!\d)?还是[-:, ]+(?![-:, \d])?你能解释一下你在追求什么吗? -
或者
([\-:, ]{0,})(?<=[^0-9])? -
P不是数字,所以[^0-9]会匹配它。如果你不想这样,不要在你的正则表达式中输入[^0-9]。 -
对不起,当然……我没有提到我要做什么……非常抱歉:/我正在尝试获取所有破折号、双点、逗号和空格,不包括数字或任何字符
-
好的,所以使用
[-:, ]+。它不匹配数字和字母。
标签: regex