我知道这应该比我做的更容易。对不起,如果这是一个简单的问题。
我正在为我的Rails应用程序使用正则表达式(根据语言改变正则表达式吗?)我想采用这样的短语:“我不熟悉RegExp。希望SO能帮到我这里。这是第三个不应包括的句子。“并且RegExp返回“希望SO会帮助我在这里”(没有句点和开头的空格,没有句号结尾)
这是我到目前为止所尝试的:
^([^(.)\s]+)
([^\.\s]+)
((\.\s))
\.\s+\K.+
我真的不知道该怎么做。再次感谢你的帮助!
这应该工作。它将第二句捕获为“希望SO能帮助我在这里”。
\.\s*([\w\s]*)\.
感谢您的评论使我能够解决这个问题。最终的解决方案最终得到以下结论:
\A[^.]*\.\s\K[^.]*(?=\.)
翻译:
\A
声明字符串的开头
[^.]*
说你可以拥有尽可能多的字符或空格(只要它们在第一个时期之前)
\.\s
找到了第一个时期和空白
然后\K
包含表达式中的所有内容
[^.]*
包括每个字符或空格,直到第一个时期
(?=\.)
表示在开始后的第一个时期后停止(标记为\ K)
再次感谢您的帮助!
你可以用
s[/\.\s+([^.]+)\./, 1]
见Ruby demo,输出:Hopefully SO will help me out here
。
这里,[/regex/, 1]
语法意味着你想将regex
应用于s
字符串并且只输出第1组的内容。因此,你真的不需要\K
match reset operator,但你肯定可以使用
s[/\.\s+\K[^.]+(?=\.)/]
这将产生相同的结果。