我是perl的新手,遇到匹配字符串特定部分的问题。
我想要匹配的是粗体:
[1339300800]当前主持州:某事;
我成功地能够匹配括号之间的字符串,至少!
($line=~/\[(\d*)\]*/)
我正在为粗体部分尝试这样的事情:
($line=~/STATE:\s(\S+);/)
有人可以提供一些建议吗?
答案 0 :(得分:2)
你的正则表达式
STATE:\s([^;]*);
对我有用吗?请记住,它在第1组匹配
if ($subject =~ m/STATE:\s(\S+);/) {
$result = $1;
} else {
$result = "";
}
此外,第一个正则表达式可以更简洁
\[(\d*)]
答案 1 :(得分:2)
如果语句总是以;
结尾,您可以写:
$line =~ /:\s([^;]+)/
答案 2 :(得分:1)
你很亲密:
$line =~ /STATE:\s+([^;]+);/
这将获得不是分号的所有内容。如果在STATE和“something”
之间有多个空格,它仍将匹配