我试图匹配一个浮点数,然后匹配一个可选的空格,再匹配一个可以表示如下的符号列表
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
答案 0 :(得分:2)
您可以使用tis regex:
(?:(\.\d+|\b\d+(?:\.\d+)?)\s*|\b)(rld[\W_]*token|btcc|btc|ark|xmr|xrp)\b
要匹配浮点数,更精确地匹配以点交替开头的数字,而不是使两个部分都可选,这将导致匹配空字符串。