Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在第一个句点和空格之间的Regexp,直到下一个句点_Ruby On Rails_Regex - Fatal编程技术网

Ruby on rails 在第一个句点和空格之间的Regexp,直到下一个句点

Ruby on rails 在第一个句点和空格之间的Regexp,直到下一个句点,ruby-on-rails,regex,Ruby On Rails,Regex,我知道这可能比我现在做的要容易。抱歉,如果这是一个简单的问题 我正在为我的Rails应用程序使用正则表达式(正则表达式会随着语言的变化而变化吗?),我想用这样一句话:“我不熟悉RegExp。希望这样可以帮助我。这是第三句话,不应该包括在内。”并让RegExp返回“希望这样可以帮助我”(开头不带句号和空格,结尾不带句号) 以下是我迄今为止所尝试的: ^([^(.)\s]+) ([^\.\s]+) ((\.\s)) \.\s+\K.+ 我真的不知道该怎么办。再次感谢你的帮助!这应该行得通。它

我知道这可能比我现在做的要容易。抱歉,如果这是一个简单的问题

我正在为我的Rails应用程序使用正则表达式(正则表达式会随着语言的变化而变化吗?),我想用这样一句话:“我不熟悉RegExp。希望这样可以帮助我。这是第三句话,不应该包括在内。”并让RegExp返回“希望这样可以帮助我”(开头不带句号和空格,结尾不带句号)

以下是我迄今为止所尝试的:

^([^(.)\s]+)

([^\.\s]+)

((\.\s))

\.\s+\K.+

我真的不知道该怎么办。再次感谢你的帮助!

这应该行得通。它将第二句话捕获为“希望你能在这里帮助我”


这应该行得通。它将第二句话概括为“希望如此能帮助我”


多亏了这些评论,我才得以解决这个问题。最终的解决方案如下:

\A[^.]*\.\s\K[^.]*(?=\.)
翻译:

\A
声明字符串的开头

[^.]*
表示可以有任意多的字符或空格(只要在第一个句点之前)

\。\s
查找第一个句点和空白

\K
然后在表达式中包含其后的所有内容

[^.]*
包括第一个句点之前的每个字符或空格

(?=\)
表示在开始后的第一个时段后停止(由\K标记)


再次感谢您的帮助!

感谢让我能够解决此问题的评论。最终的解决方案如下:

\A[^.]*\.\s\K[^.]*(?=\.)
翻译:

\A
声明字符串的开头

[^.]*
表示可以有任意多的字符或空格(只要在第一个句点之前)

\。\s
查找第一个句点和空白

\K
然后在表达式中包含其后的所有内容

[^.]*
包括第一个句点之前的每个字符或空格

(?=\)
表示在开始后的第一个时段后停止(由\K标记)

再次感谢您的帮助!

您可以使用

s[/\.\s+([^.]+)\./, 1]
请参阅,输出:
,希望SO能在这里帮助我

在这里,
[/regex/,1]
语法意味着您希望将
regex
应用于
s
字符串,并且只输出组1的内容。因此,您实际上不需要,但肯定可以使用

s[/\.\s+\K[^.]+(?=\.)/]
这将产生相同的结果。

您可以使用

s[/\.\s+([^.]+)\./, 1]
请参阅,输出:
,希望SO能在这里帮助我

在这里,
[/regex/,1]
语法意味着您希望将
regex
应用于
s
字符串,并且只输出组1的内容。因此,您实际上不需要,但肯定可以使用

s[/\.\s+\K[^.]+(?=\.)/]

这将产生相同的结果。

使用
\.\s+(.+)
并获取组1值。对于PHP,您甚至可以使用
\K
第一个句点和空格
\.\s
直到下一个句点
[^.]*\.
\.\s\K[^.]*(?=\)
sln,如何使正则表达式只包含空格后的所有内容?请使用
\K
构造。还有其他可能性,取决于您希望使其具有多大的通用性/严格性。请使用
\.\s+(.+)
并获取组1值。对于PHP,您甚至可以使用
\K
第一个句点和空格
\.\s
直到下一个句点
[^.]*\.
或,
\.\s\K[^.]*(?=\)
sln,我如何使正则表达式只包含空格后的所有内容?使用
\K
构造。还有其他可能性,取决于您希望使其变得多么一般/严格。谢谢。在下面发布了最终答案。谢谢。在下面发布了最终答案。为什么不干脆
s[/\.\s+([^.]+)/,1]
?Wiktor,当我使用rubular.com时,这个解决方案似乎不起作用。不确定为什么会有正斜杠?可能只是语言上的差异?我不确定。我感谢您的帮助!您关于\K的建议真的很有帮助!请参阅下面我的答案。为什么不只是
s[/\.\s+([^.]+)/,1]
?Wiktor,当我使用rubular.com时,这个解决方案似乎不起作用。不确定为什么会有正斜杠?可能只是语言上的差异?我不确定。不过我感谢您的帮助!您关于\K的建议真的很有帮助!请参阅下面我的答案。