我正在尝试从PJL打印作业中提取用户名。我有一个正则表达式,但我需要在用户名中添加文本。
我尝试编辑的行是
@PJL SET USERNAME =“john.wayne”
当我使用这个正则表达式时
@PJL \ S + SET \ S + USERNAME \ S * = \ S * “(\ S +?)”
我得到了john.wayne,但我在名字
之前添加了一些文字e.g。 Stack-john.wayne或overflow-john.wayne
它必须在一行中,因为这是程序支持的
https://www.papercut.com/products/ng/manual/applicationserver/topics/printer-external-usernames.html
有人知道这是否可行?
答案 0 :(得分:0)
这是你想要的吗?
$string = '@PJL SET USERNAME="john.wayne"';
$string = preg_replace('/(@PJL\s+SET\s+USERNAME\s*=\s*")(\S+?")/', '$1text-$2', $string);
echo $string,"\n";
<强>输出:强>
@PJL SET USERNAME="text-john.wayne"