Javascript 正则表达式匹配由空格分隔但不包含点的字符串

标签 javascript regex

我正在尝试匹配字符串中未被点分隔的单词。
因为在 Javascript 中没有 lookbehinds 我一直在努力解决这个问题并且无法让它工作。

测试字符串 1:'一二三.四五六.七八'
应该匹配:'one', 'two', 'five', 'eight'

测试字符串 2: '一.二三四.五六七.八'
应该匹配:'three', 'six'

更新:
测试字符串 3:'一.二三四五六七.八'
应该匹配:'three', 'four', 'five', 'six'

到目前为止,我有 ( |^)(\w+)( |$),它有点适用于测试字符串 2,但无法匹配 'two'

有什么方法可以用正则表达式来做到这一点,还是应该将它拆分成一个数组然后遍历它?

最佳答案

使用正则表达式 ( |^)\w+(?= |$)

'one two three.four five six.seven eight'.replace(/( |^)\w+(?= |$)/g, '$1TEST')

或者没有正则表达式(可能更具可读性)

'one two three.four five six.seven eight'.split(' ').map(function(item) {
    if(item.indexOf('.') < 0)
        return 'TEST';
    return item;
}).join(' ')

关于Javascript 正则表达式匹配由空格分隔但不包含点的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25546442/

相关文章:

sql - PostgreSQL 10 - 返回部分列(TEXT)值与匹配的 ILIKE 模式及其 N 个相邻单词

java - 正则表达式仅读取句子直到 '=' 但不包括

javascript - React 中 onChange 或 onSubmit 中是否将表单输入保存到状态

javascript - JS - 列出以逗号分隔的数组

javascript - 使用 onInputChange 和 addCustomMessageHandler 将数据传递给forceNetwork

javascript - 如何将风险矩阵转化为数据结构?

python - 将 re.search 函数应用于 Python 中的列

javascript - 点击提交按钮后如何使用 "display: block"?

javascript - 如果字符串与 jquery 中的一行匹配,则禁用按钮

java - 正则表达式:/w 是否表示 [a-zA-Z] 或 [a-zA-Z0-9_] 正如大多数教程提到的\w - 匹配单词字符?