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

发布于 2024-12-11 13:46:53 字数 353 浏览 0 评论 0原文

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

示例:

单词 1 =“Hello”
Word 2 =“World”

文本:

Hello, this is a sentence.
The whole World can read this.
What World?

我想要提取的文本是:

Hello, this is a sentence.
The whole World

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

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

谢谢

I want to extract a string from a piece of text. This string must start end end with a certain string.

Example:

Word 1 = "Hello"
Word 2 = "World"

Text:

Hello, this is a sentence.
The whole World can read this.
What World?

The piece of text i want to extract is:

Hello, this is a sentence.
The whole World

What kind of regular exception should i use for extraction of the string.

Note: the string 'World' occurs twice.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝海 2024-12-18 13:46:53
^\bHello\b.*?\bWorld\b

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

if ($subject =~ m/^\bHello\b.*?\bWorld\b/s) {
    $result = 
amp;;
}

注意修改后的 s 指示

.

也可以匹配换行符。

^\bHello\b.*?\bWorld\b

Where the "." also matches newline! Note the word boundaries \b, you don't want to match anything which is not exactly Hello or World, as if those words were part of other words.

if ($subject =~ m/^\bHello\b.*?\bWorld\b/s) {
    $result = 
amp;;
}

Note the s modified which instructs

.

to match newline characters too.

灯角 2024-12-18 13:46:53

最简单的选择是使用惰性量词 (*?)。将从第一个 Hello 到第一个 World 进行匹配。 (记住 /s 标志,对于点全)

Hello.*?World

如果您也不希望捕获文本包含 Hello ,这可能是一个问题。一个更偷偷摸摸的选择是:

Hello(?:(?!Hello|World).)*World

或者

Hello(?:(?!Hello).)*?World

The simplest option is using a lazy quantifier (*?). The would match from the first Hello to the first World. (remember the /s flag, for dot-all)

Hello.*?World

This can be a problem if you don't want the capture text to contain Hello either. A more sneaky option then is:

Hello(?:(?!Hello|World).)*World

Or

Hello(?:(?!Hello).)*?World
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文