0

这就是我想要做的:

文本:-one oneitis -2 +3+4+5 -6-7-8 -9 再 11+12+13

我想匹配:

  1. -oneitis
  2. -二
  3. +三个
  4. +四个
  5. +五个
  6. -六七八
  7. -九点十一点
  8. +十二十三

基本上,忽略单词中匹配的“-”,但如果存在则匹配“+”和“-”

这是我正在使用的正则表达式: /([-+][^+]+)/

我想基本上做 [^(+)&( -)]+

或者,匹配任何不是 '+' 也不是 ' -' <- 即(空格和减号)

有没有办法做到这一点?

提前致谢!(链接一些工具http://rubular.com/

4

2 回答 2

3

解决方案。

    ([-+](?:[^ ][-]|[ ][^-+]|[^ +-])+)

http://rubular.com/r/fTSm0pjvEX

于 2012-05-08T19:32:08.940 回答
1

一种选择是拆分\+|\B-http ://rubular.com/r/tC2zTWZI4v

由 every 分割+,并且-在空格(或任何非字母数字字符)之后。

这意味着它在某些情况下不会拆分,例如+a b-c不会拆分。

如果您确实想匹配您的单词,并且想在这种情况下拆分,您可以尝试:

[+-]([^\s+]*[^+-]*)

http://rubular.com/r/TqQEAoJ2Yv

于 2012-05-08T16:19:46.817 回答