我试图在字符串中找到变量,例如
"%0" can not be found. %1 Please try again %2
我需要知道每个变量如何结束(空格,句点,行尾)因为我将检查此字符串的翻译版本中是否存在相同的变量。文本来自CSV,字符串不以换行符结束。
我能够捕获除了字符串末尾的所有内容:
reg = /[%@!][^\s]+[\s\.\z$]+/
我认为$
或\z
应匹配行尾,但这似乎不起作用。如何在上述场景中捕获%2? (同样,最后没有换行符)
答案 0 :(得分:4)
$
匹配行尾,但不是在括号内使用时。写[$]
是你如何寻找正常的美元符号字符'$'。
如果您要搜索的字符串是您在上面列出的确切字符串,请尝试
reg = /^"(.*)" can not be found[.] (.*) Please try again (.*)$/
error_string =~ reg
您的三个匹配结果将存储在特殊变量$1
,$2
和$3
中。
答案 1 :(得分:0)
好的,我用不同的方法解决了这个问题。使用正向前瞻作为角色类不需要
/[%@!][\w]+(?=\s|\z|\.|\W)/
对于示例字符串,返回:
%0
%1
%2