我需要想出一些正则表达式或 JavaScript,如标题所示,它会从每 X 个连续单词中获取 1 个随机单词。
例如我有这段文字
“在计算中,正则表达式提供了一种简洁而灵活的方法来“匹配”(指定和识别)文本字符串,例如特定字符、单词或字符模式。“正则表达式”的常见缩写包括 regex和正则表达式。”
我想每 4 个单词正则表达式 1 个单词,因此从文本“在计算中,常规”中的前四个单词中,我将正则表达式输出 1 个随机单词,例如计算
需要对整个文本执行此操作,例如上面有 9 组,每组 4 个单词。我想从每组中随机抽取一个单词。希望我可以在该正则表达式中进行快速编辑,以便它也可以对 X 单词组执行相同的操作。 X 是任意数字。
我已经尽一切努力寻找可以为我做到这一点的东西,但我进展得不太好(我对正则表达式和 javascript 都很陌生)
我想如果我可以使用javascript将文本分成X组单词,然后我可以尝试从每组中获取一个随机单词。
到目前为止我所拥有的是:
var split='In computing, a regular expression provides a concise and flexible means to "match" (specify and recognize) strings of text, such as particular characters, words, or patterns of characters. Common abbreviations for "regular expression" include regex and regexp.'.match(/[^ ]+( +[^ ]+){0,3}/g);
这会将带有逗号分隔符的文本分成 4 个单词组(或每 3 个空格)。问题是分隔符是逗号,因此原始文本中的任何逗号也会在输出中看到,例如
In computing, a regular,expression provides a concise,and flexible means to,"match" (specify and recognize),strings of text, such,as particular characters, words,,or patterns of characters.,Common abbreviations for "regular,expression" include regex and,regexp.
是否可以将该分隔符更改为除逗号之外的其他内容?至少这样我就可以尝试想出一些可用于每个 4 个单词组的正则表达式。我想也许可以在匹配后替换逗号,但这当然也会替换所有原始逗号。
我不确定如何处理随机单词正则表达式或 javascript,但我认为对组进行排序是朝着正确方向迈出的第一步?
感谢您对此的任何帮助或建议,我真的很感激。很抱歉,如果这对你们中的一些人来说是完全简单的,但我是新手,我已经尝试了几个小时来提出一些可行的解决方案,但无济于事。
彼得
最佳答案
正则表达式不支持随机化,因此它们在这里对您没有帮助。
但是您可以使用 String.split 方法将文本转换为单个单词的数组。然后,您以四组为一组迭代该数组,并从每组中选择一个随机单词。
Math.floor(Math.random() * 4)
返回 0 到 3 之间的随机整数。
关于javascript - 正则表达式或 javascript 每 X 个连续单词中有 1 个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12266235/