从正则表达式查询中删除字符

时间:2018-12-08 12:01:31

标签: regex

我很难理解为什么我的正则表达式查询除了我已告诉正则表达式要包含在查询中的符号之外还要再增加一个字符,所以这是我的正则表达式:

([\-:, ]{1,})[^0-9]

这是我的测试文字:

Test- Product-: 1 --- 3 hour  ,--kayak:--rental

它始终包含每个起始单词的首个字符,例如Product上的P或hour上的h,如何防止正则表达式包含这些首字符?

我正在尝试获取所有破折号,双点,逗号和空格,但不包括数字或任何字符。

1 个答案:

答案 0 :(得分:1)

正则表达式的[^0-9]部分与除数字以外的任何字符都匹配,因此应从模式中将其删除。

不需要用捕获组来包装字符类,并且{0,1}等于+,因此整个正则表达式可以简化为

[-:, ]+

请注意,不必在字符类的开始位置和结束位置-进行转义。