javascript - 单词边界匹配 float 后跟可选空格

标签 javascript regex word-boundary

我正在尝试匹配一个 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

Updated RegEx Demo

要匹配 float ,更准确的做法是交替匹配以点开头的数字,而不是让两部分都可选,这将导致匹配空字符串。

关于javascript - 单词边界匹配 float 后跟可选空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57043834/

相关文章:

Java 正则表达式字边界

javascript - 在同一页面上运行多个 ng-app 容器

javascript - Vue 如何在加载数据填充工作表之前将文本作为 v-card 中的占位符?

javascript - 使用 PHP 抓取 SQL 数据,然后将数组发送到 Javascript

javascript - 具有保存先前状态的功能

regex - 使用正则表达式有选择地搜索和替换某些行

php 正则表达式 utf-8 中的单词边界匹配

python - 如何在django中编写re_path url来读取特殊字符?

regex - 如何在 Linux 命令行上使用正则表达式过滤文本文件中以大写字母开头并以正整数结尾的行?

Java 正则表达式排序\b