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