正则表达式 - 使用术语"xx"拆分术语



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

我需要捕获术语"xx"。逗号和"xx"应该分隔术语。它们应该以同样的方式工作。 如果我输入类似"st.mp xx火球"的内容,它应该返回["mp","xx","fireball"]

现在我的正则表达式是(w+( w+)*|s)我可以在其中获得带有空格的术语(例如,如果我输入"红色火球",它会返回["red fireball"](我不确定要添加什么来捕获"xx"。 我认为正在发生的事情是,当我输入像"st.mp xx 火球"这样的术语时,它会捕获整个事情,并且与我的 json 中的任何内容都不匹配。 我仍然是正则表达式的新手。 我尝试过的事情范围从只是做(xx)b(xx)我只是不知道该尝试什么。

单行演示:

"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的参数应该是拆分器

最新更新