正则表达式从红宝石中的非捕获组捕获

Cashman04

我正在尝试修复用于lita的chatops机器人的正则表达式。我有以下正则表达式:

/^(?:how\s+do\s+I\s+you\s+get\s+far\s+is\s+it\s+from\s+)?(.+)\s+to\s+(.+)/i

这应该捕获“到”之前和之后的单词,前面带有可选单词,这些单词可以构成以下问题:我如何从x到y,从x到y多远,从x到y多远。

预期输出:

match 1 : "x"
match 2 : "y"

在大多数情况下,我的可选字词都可以正常工作。但是,当我进行响应匹配时,就会得到包含第一个捕获组的单词。

因此,how far is it from sfo to lax应返回:

sfolax

而是返回:

how far is it from sfolax

乔尔·帕克·亨德森

您的故障是正则表达式的第一部分没有意义。

要从多个选项中进行选择,请使用以下语法:

(a|b|c)

我认为您正在尝试执行以下操作:

/^(?:(?:how|do|I|you|get|far|is|it|from)\s+)*(.+)\s+to\s+(.+)/i

regexp表示跳过所有选项中的所有单词,无论顺序如何。

如果要保留字序,则可以使用正则表达式,例如此伪代码:

… how (can|do|will) (I|you|we) (get|go|travel) from …

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式从红宝石中的非捕获组捕获

来自分类Dev

Javascript正则表达式中的非捕获组

来自分类Dev

R正则表达式中的非捕获组

来自分类Dev

正则表达式中的非捕获组

来自分类Dev

正则表达式:捕获组中的捕获组

来自分类Dev

捕获组中的正则表达式捕获组

来自分类Dev

使用Python正则表达式在非捕获组中的多个捕获组

来自分类Dev

Grep非捕获组和同一正则表达式中的捕获组。仅打印捕获组

来自分类Dev

正则表达式非捕获组-没用吗?

来自分类Dev

正则表达式非捕获组ins Scala

来自分类Dev

正则表达式反向引用非捕获组?

来自分类Dev

正则表达式替换忽略非捕获组

来自分类Dev

正则表达式第二非捕获组?

来自分类Dev

返回Javascript正则表达式非捕获组

来自分类Dev

Ruby正则表达式非捕获组

来自分类Dev

正则表达式非捕获组

来自分类Dev

Python正则表达式返回非捕获组

来自分类Dev

正则表达式非捕获组

来自分类Dev

正则表达式:不是任意的非捕获组

来自分类Dev

正则表达式非捕获组

来自分类Dev

正则表达式:捕获组?

来自分类Dev

正则表达式,捕获组

来自分类Dev

正则表达式捕获组

来自分类Dev

正则表达式中捕获组的奇怪行为

来自分类Dev

正则表达式在Visual Studio中捕获组

来自分类Dev

正则表达式可选部分中的捕获组

来自分类Dev

Scala正则表达式中的多个捕获组

来自分类Dev

Vim中的正则表达式以匹配组捕获

来自分类Dev

gsub中的Ruby正则表达式捕获组