Regex 正则表达式匹配“;不是两个字符的任何东西”;

Regex 正则表达式匹配“;不是两个字符的任何东西”;,regex,pattern-matching,Regex,Pattern Matching,这就是我想做的: 正文: -一是二+三+四+五-六七八九然后十一+十二十三 我想匹配: -一种牙周炎 -两个 +三 +四 +五 -六七八 -九点接着十一点 +十三级 基本上,忽略单词中的匹配“-”,但如果单词中存在匹配“+”和“-” 这是我正在使用的正则表达式:/([-+][^+]+)/ 我想基本上做[^(+)&(-)]+ 或者,匹配任何不是“+”或“-”的项一个选项是按\+\B-拆分: 按空格(或任何非字母数字字符)后的每个+和-进行拆分 这意味着它在某些情况下不会被拆分,例如,+ab-c不会

这就是我想做的:

正文: -一是二+三+四+五-六七八九然后十一+十二十三

我想匹配:

  • -一种牙周炎
  • -两个
  • +三
  • +四
  • +五
  • -六七八
  • -九点接着十一点
  • +十三级
  • 基本上,忽略单词中的匹配“-”,但如果单词中存在匹配“+”和“-”

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

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


    或者,匹配任何不是“+”或“-”的项一个选项是按
    \+\B-
    拆分:

    按空格(或任何非字母数字字符)后的每个
    +
    -
    进行拆分

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

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

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

    一个选项是按
    \+\B-
    拆分:

    按空格(或任何非字母数字字符)后的每个
    +
    -
    进行拆分

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

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

    [+-]([^\s+]*[^+-]*)
    
    解决方案

        ([-+](?:[^ ][-]|[ ][^-+]|[^ +-])+)
    
    解决方案

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

    即使不是家庭作业,规则显然比“基本上忽略匹配+单词内”更复杂。你还没有充分地约束你的问题,所以我们可以从你的例子中猜出的任何规则都可能是错误的。我建议你坐下来确切地定义一下你的匹配规则。到那时,你甚至可能不再需要我们的帮助。不幸的是,它不是。。。我喜欢家庭作业……基本上,我想要中间的文本/数据。1在“+”和“-”之间,如果被字符包围,则“-”除外。“-”可以,即使不是家庭作业,规则显然比“基本上忽略匹配+单词内”更复杂。你还没有充分地约束你的问题,所以我们可以从你的例子中猜出的任何规则都可能是错误的。我建议你坐下来确切地定义一下你的匹配规则。到那时,你甚至可能不再需要我们的帮助。不幸的是,它不是。。。我喜欢家庭作业……基本上,我想要中间的文本/数据。1在“+”和“-”之间,如果被字符包围,则“-”除外。“-”是okIn,换句话说,使用交替运算符作为“逻辑门”。换句话说,使用交替运算符作为“逻辑门”。谢谢Kobi,但我希望匹配不拆分的单词。我在单词匹配和标志匹配方面遇到了问题。我现在知道答案了,不过还是要谢谢你!谢谢Kobi,但我想用不分裂的方式匹配单词。我在单词匹配和标志匹配方面遇到了问题。我现在知道答案了,不过还是要谢谢你!