Perl在标记之间获取文本

Perl在标记之间获取文本,perl,Perl,我尝试了很多在网上找到的代码,但都不管用 我有一个类似这样的HTML代码 <div class="usernameHolder">Username: user123</div> 用户名:user123 我想要的是从这行代码中获取文本user123,当然这段代码包含了其余的HTML内容(一个HTML页面),有人能告诉我正确的方向吗 $text = @source=~ /Username:\s+(.*)\s+</; print $text; $text=@sour

我尝试了很多在网上找到的代码,但都不管用

我有一个类似这样的HTML代码

<div class="usernameHolder">Username: user123</div>
用户名:user123
我想要的是从这行代码中获取文本user123,当然这段代码包含了其余的HTML内容(一个HTML页面),有人能告诉我正确的方向吗

$text = @source=~ /Username:\s+(.*)\s+</;
print $text;

$text=@source=~/Username:\s+(.*)\s+您的第二个
\s+
不匹配,因为
user123
和以下标记之间没有空格

这个怎么样

/Username:\s*(.*?)\s*</

/Username:\s*(.*)\s*您的第二个
\s+
不匹配,因为
user123
和以下标记之间没有空格

这个怎么样

/Username:\s*(.*?)\s*</

/Username:\s*(.*)\s*如果HTML是字符串:

$source = '<div class="usernameHolder">Username: user123</div>';

# Allow optional whitespace before or after the username value.
$text = $source=~ /Username:\s*(.*?)\s*</;

print $1 . "\n";   # user123
$source='Username:user123';
#允许在用户名值之前或之后使用可选空格。

$text=$source=~/Username:\s*(*?)\s*如果HTML位于字符串中:

$source = '<div class="usernameHolder">Username: user123</div>';

# Allow optional whitespace before or after the username value.
$text = $source=~ /Username:\s*(.*?)\s*</;

print $1 . "\n";   # user123
$source='Username:user123';
#允许在用户名值之前或之后使用可选空格。

$text=$source=~/Username:\s*(*?)\s*请参见和。@Grigor-小心你的信号-“@source”!=”$您可以通过在代码中添加
use warnings
来让perl回答您的问题<代码>将模式匹配(m//)应用于@array将作用于标量(@array)上的…
See和的副本。@Grigor-小心你的符号-“@source”!=”$您可以通过在代码中添加
use warnings
来让perl回答您的问题<代码>将模式匹配(m//)应用于@array将作用于标量(@array)…
此答案的副本是错误的。无法将模式匹配应用于数组,因此无法打印任何内容。(当然可以,但是数组被放在标量上下文中并返回它的大小,而不是它的内容)@TLP:Oh。你说得对,这也是一个错误。我甚至没有注意到,我关注的是regexp不适合用例。这并不意味着我写错了什么,只是让它变得不完整。这个答案是错误的。无法将模式匹配应用于数组,因此无法打印任何内容。(当然可以,但是数组被放在标量上下文中并返回它的大小,而不是它的内容)@TLP:Oh。你说得对,这也是一个错误。我甚至没有注意到,我关注的是regexp不适合用例。这并不意味着我写错了什么,只是让它变得不完整。