我正在尝试匹配一个 float ,后跟一个可选空格,后跟一个可以表示如下的符号列表
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 匹配,我假设这必须对空格和单词边界做一些事情
如果我删除单词 boundary,它会匹配我不想匹配的 whatisrldtoken。
非常感谢有关如何进行的一些指导
编辑 一切都在行动HERE
最佳答案
您可以使用 tis 正则表达式:
(?:(\.\d+|\b\d+(?:\.\d+)?)\s*|\b)(rld[\W_]*token|btcc|btc|ark|xmr|xrp)\b
要匹配 float ,更准确的做法是交替匹配以点开头的数字,而不是让两部分都可选,这将导致匹配空字符串。
关于javascript - 单词边界匹配 float 后跟可选空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57043834/