正则表达式解析字符串替换问题

发布于 2024-11-09 11:35:20 字数 134 浏览 0 评论 0原文

我想知道是否有一种简单的方法来解析这样的字符串

set   PROMPT = Yes, Master?

我想做的就是解析该字符串的一部分直到等号并将等号之后的第二部分解析为另一个字符串。

I would like to know if there is an easy way for parsing a string like this

set   PROMPT = Yes, Master?

What I would like to do, is parse one part of this string up to the equal sign and parse the second part after the equal sign into another string.

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

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

发布评论

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

评论(3

世界和平 2024-11-16 11:35:20

类似...

$phrase = 'set   PROMPT = Yes, Master?';
@parts = split /=/, $phrase;

($set, $value) = split /=/, $phrase, 2;

[更新]每个评论的更改。

Something like...

$phrase = 'set   PROMPT = Yes, Master?';
@parts = split /=/, $phrase;

or

($set, $value) = split /=/, $phrase, 2;

[updated] Changes per comments.

嘦怹 2024-11-16 11:35:20

尝试匹配此正则表达式 /\s*set\s*(\w+)\s*=\s*(.*)\s*$/ 并使用 $1 设置部分代码> 和 <代码>$2:

my $str = 'set   PROMPT = Yes, Master?';
my ($k, $v) = ($1, $2) if $str =~ /\s*set\s*(\w+)\s*=\s*(.*)\s*$/;
print "OK: k=$k, v=$v\n"; OK: k=PROMPT, v=Yes, Master?

Try matching this regex /\s*set\s*(\w+)\s*=\s*(.*)\s*$/ and setting the parts with $1 and $2:

my $str = 'set   PROMPT = Yes, Master?';
my ($k, $v) = ($1, $2) if $str =~ /\s*set\s*(\w+)\s*=\s*(.*)\s*$/;
print "OK: k=$k, v=$v\n"; OK: k=PROMPT, v=Yes, Master?
鹿港小镇 2024-11-16 11:35:20
while ($subject =~ m/([^\s]+)\s*=\s*([^\$]+)/img) {
    # $1 = $2
}
while ($subject =~ m/([^\s]+)\s*=\s*([^\$]+)/img) {
    # $1 = $2
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文