正则表达式:匹配字符串从单词到单词

Mat*_*art 6 regex

我想从一段文本中提取一个字符串。该字符串必须以某个字符串结尾。

例:

词1 =“你好”
词2 =“世界”

文本:

Hello, this is a sentence.
The whole World can read this.
What World?
Run Code Online (Sandbox Code Playgroud)

我要提取的文本是:

Hello, this is a sentence.
The whole World
Run Code Online (Sandbox Code Playgroud)

我应该使用哪种常规异常来提取字符串。

注意:字符串“ World”出现两次。

谢谢

Fai*_*Dev 5

^\bHello\b.*?\bWorld\b
Run Code Online (Sandbox Code Playgroud)

哪里有“。” 也匹配换行符!请注意单词边界\b,您不想匹配任何不完全是 Hello 或 World 的内容,就好像这些单词是其他单词的一部分一样。

if ($subject =~ m/^\bHello\b.*?\bWorld\b/s) {
    $result = $&;
}
Run Code Online (Sandbox Code Playgroud)

注意 s 修改指示

.

也匹配换行符。