【问题标题】:Regex - Split terms using the term "xx"正则表达式 - 使用术语“xx”拆分术语
【发布时间】:2018-02-03 01:47:56
【问题描述】:

当用户在输入栏中输入一个术语时,如果该术语与我的 json 列表中的内容匹配,它将被拆分为一个数组。例如,如果用户输入诸如“st.mp, st.mp, fireball”之类的内容,则数组变为["mp",",","mp",",","fireball"]。逗号也包括在内,这是故意的。每个术语都会在我的应用中创建一个图像。

我需要捕获术语“xx”。逗号和“xx”应该用来分隔这些术语。他们应该以同样的方式工作。如果我输入“st.mp xx fireball”之类的内容,它应该返回["mp","xx","fireball"]

现在我的正则表达式是(\w+( \w+)*|\s) 我可以得到带有空格的术语(例如,如果我输入“red fireball”,它会返回["red fireball"])我不确定要添加什么来捕获“xx”。我认为正在发生的事情是,当我输入“st.mp xx fireball”之类的术语时,它会捕获整个内容,并且与我的 json 中的任何内容都不匹配。我还是正则表达式的新手。我尝试过的事情从(xx)\b(xx) 不一而足,我什至不知道该尝试什么。

【问题讨论】:

  • 是否要求您只使用正则表达式匹配?你能用 Javascript 的 .split() 函数吗?
  • 我正在使用 .split() 与正则表达式匹配。

标签: javascript json regex


【解决方案1】:

单行演示:

"st.mp xx fireball, with space".split(/(?:(,)\s+|\s+(xx)\s+)/)
// -> ["st.mp", undefined, "xx", "fireball", ",", undefined, "with space"]
// filter undefined out then

您可能在错误的方向使用.split.split 的参数应该是拆分器

【讨论】:

    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2022-10-15
    • 2013-04-13
    • 1970-01-01
    相关资源
    最近更新 更多