请 教 如 何 使 用 LUA 模 式 缩 短 句 子

我 的 模 式 如 下 方 式 缩 短 字 符 串:

string.gsub("First Second Third", "%s?(.[\128-\191]*)%S+%s", "%1. ")
= "F. S. Third"

如 何 才 能 得 到 "First S. T."

非 常 感 谢 大 家 的 回 复。

原文链接 https://stackoverflow.com/questions/70153213

点赞
stackoverflow用户1514861
stackoverflow用户1514861

我认为这可能是你想要的:

string.gsub("First Second Third", "%s(%a)%a*", " %1.")

这会返回:

First S. T.

如果它需要更像你的模式,它会像这样,对于这个例子至少返回相同的结果。但是我认为[\128-\191]部分对我来说没有太多意义。

string.gsub("First Second Third", "%s(.[\128-\191]*)%S+", " %1.")
2021-11-29 10:56:37
stackoverflow用户107090
stackoverflow用户107090

尝试一下:

string.gsub("First Second Third", "(%S+)%s+(%S)%S*%s+(%S)%S*", "%1 %2. %3.") 

这个模式选择以非空白字符组成的单词,中间以空格隔开。它捕获第一个单词和其他单词的第一个字母。

2021-11-29 11:57:11