我知道这并不完美,但我正在寻找一个正则表达式来猜测文件中的某一行是否是街道地址(不带城市州邮政编码)。
例如:
北主街 112 号
3525 韦伯斯特
1 石大道
莫里森 34 号
因此,我尝试的方法是:至少有一个数字、至少一个大写字母、至少两个小写字母,以及字符串中间的某个位置至少有一个空格。到目前为止,我还没有成功:
/[1-9][A-Z]{1}[a-z]{2}\s/
我知道这并不完美,但我正在寻找一个正则表达式来猜测文件中的某一行是否是街道地址(不带城市州邮政编码)。
例如:
北主街 112 号
3525 韦伯斯特
1 石大道
莫里森 34 号
因此,我尝试的方法是:至少有一个数字、至少一个大写字母、至少两个小写字母,以及字符串中间的某个位置至少有一个空格。到目前为止,我还没有成功:
/[1-9][A-Z]{1}[a-z]{2}\s/
为了实验目的,我设置了一个 Mariadb Maxscale(1 个主服务器和 2 个副本)复制集群。据我所知,使用 Maxscale 的主要目的是决定查询哪个服务器。因此,我不确定如何将我的 DBI 查询定向到 Maxscale 而不是特定服务器。
我通常使用 Perl DBI 以以下方式连接数据库;
my $dbh = DBI->connect("DBI:mysql:database=$db_name};$server",$user,$passwd);
有人能告诉我如何使用 Maxscale 做到这一点吗?
maxctrl list servers
┌─────────┬─────────────┬──────┬─────────────┬─────────────────┬──────────┬─────────────────┐
│ Server │ Address │ Port │ Connections │ State │ GTID │ Monitor │
├─────────┼─────────────┼──────┼─────────────┼─────────────────┼──────────┼─────────────────┤
│ server1 │ 192.168.0.2 │ 3306 │ 0 │ Master, Running │ 0-2-1438 │ MariaDB-Monitor │
├─────────┼─────────────┼──────┼─────────────┼─────────────────┼──────────┼─────────────────┤
│ server2 │ 192.168.0.3 │ 3306 │ 0 │ Slave, Running │ 0-2-1438 │ MariaDB-Monitor │
├─────────┼─────────────┼──────┼─────────────┼─────────────────┼──────────┼─────────────────┤
│ server3 │ 192.168.0.4 │ 3306 │ 0 │ Slave, Running │ 0-2-1438 │ MariaDB-Monitor │
└─────────┴─────────────┴──────┴─────────────┴─────────────────┴──────────┴─────────────────┘
我似乎能够按照以下方式连接:
$ mysql -h 192.168.0.1 -umaxscale -ppasswd -P4006 -e 'SHOW DATABASES;'
+--------------------+
| Database |
+--------------------+
| admin |
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
我只是想不明白如何通过 Perl DBI 成功查询。
我的 Dancer 应用程序中有这条路线:get '/newplayer/:name/:team/:season' => sub {
它被像这样调用:https://website.com/newplayer/Joe Smith/Tigers/Fall 2024
并从 url 收集数据并将其放入模板 newplayer.tt 中的表单中,以便当用户到达页面时这些信息大部分已经填写完毕。
它运行良好,但我正在寻找一种方法,即使 URL 中没有提供任何值,仍然可以找到路由,这样如果用户访问,https://website.com/newplayer
他们仍然会到达页面,尽管表单为空,而不是收到 404 错误。有人知道我该怎么做吗?
我尝试使用 JavaScript 来确保标签中的四个输入都相互匹配,如果匹配则提交表单或至少允许表单提交。但是,即使满足 else 条件,表单也不会提交。
$(document).ready(function() {
$('#bca').submit(function(e) {
var form = bca;
e.preventDefault();
// Check Passwords are the same
if ($('#InitialsP1').val() != $('#InitialsP2').val() || $('#InitialsP2').val() != $('#InitialsP3').val()) {
alert('Fields do not match. Correct Fields where necessary');
} else {
document.getElementById("bca").submit();
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="invoice-box">
<form id="bca" action="bca" method="post">
<input id="InitialsP1" name="InitialsP1" type="text"
placeholder="Initials" size="5" value="" required
style=”float: right”>
<input id="InitialsP2" name="InitialsP2" type="text"
placeholder="Initials" size="5" value="" required
style=”float: right”>
<input id="InitialsP3" name="InitialsP3" type="text"
placeholder="Initials" size="5" value="" required
style=”float: right”>
<input id="InitialsP4" name="InitialsP4" type="text"
placeholder="Initials" size="5" value="" required
style=”float: right”>
<div class="form-group">
<div class="col-md-12 text-center">
<button id="submit" type="submit" class="btn btn-primary btn-lg">Submit</button>
</div>
</div>
</form>
</div>
我正在使用下面的代码连续读取文件。我遇到的问题是,每当我运行代码时,它都会从文件开头开始,返回整个文件,而不是从最后 50 行开始。
我查阅了文档并尝试了 tail=>n 参数的不同值 - 甚至 n= 文件中的总行数减去 50 - 但是我的代码每次都从文件的开头开始,而不是像我一样在结尾处开始需要。我究竟做错了什么?
use strict;
use warnings;
use File::Tail;
my $name; #file name
my $name="/home/richard/double-take/messages.log";
my $line;
my $file=File::Tail->new(name=>$name, interval=>3, maxinterval=>3, tail=>50);
while (defined($line=$file->read)) {
print "$line";
}