代码之家  ›  专栏  ›  技术社区  ›  PirateApp

后跟可选单词边界浮点的匹配空格

  •  0
  • PirateApp  · 技术社区  · 7 年前

    price of rldtoken
    420 rld.token 0.28 btc
    42.37 rldtoken to xrp
    42.37rldtoken to xmr
    cost of rldtoken
    10 btc 12.47 rldtoken to xmr
    whatisrldtoken
    btcc price
    btc cost
    0.2btc
    

    我目前正在使用这个正则表达式

    ((?:0|[1-9]\d*)?(?:\.\d+)?)\s*\b(rld[\W_]*token|btcc|btc|ark|xmr|xrp)\b
    

    ((?:0|[1-9]\d*)?(?:\.\d+)?) Match float
    \s* Match 0 or more spaces
    \b(rld[\W_]*token|btcc|btc|ark|xmr|xrp)\b Match words
    

    除了42.37rldtoken到xrp和0.2btc之外,其他都匹配,我假设这与空间和单词边界有关

    如果我删除单词边界,它将匹配我不想匹配的whatisrldtoken。

    对于如何进行的一些指导,我们将不胜感激

    编辑 HERE

    1 回复  |  直到 7 年前
        1
  •  3
  •   anubhava    7 年前

    您可以使用tis正则表达式:

    (?:(\.\d+|\b\d+(?:\.\d+)?)\s*|\b)(rld[\W_]*token|btcc|btc|ark|xmr|xrp)\b
    

    Updated RegEx Demo