我想使用第三方工具,将大量文件导入SharePoint,并将它们与用户关联。它需要一个正则表达式来完成文件名和帐户名之间的转换。
我们的文件格式为firstname-name
或firstname-middlename-name
。我们的帐户名的格式为名字
然后是姓氏的首字母
。
因此,为了说明:
foo bar -> foob
foo bar qux -> fooq
在搜索过程中,我确实找到了一些获取最后一个单词的第一个字母的示例,但它们都使用了代码中的函数和正则表达式,但在这种情况下我无法使用这些函数。单独使用正则表达式可以做到这一点吗?
您可以尝试以下方法:
^([a-zA-Z]+).*\s([a-zA-Z])[a-zA-Z]+$
在Regexr上看到它了吗
您将在第一个捕获组中找到名字,通常称为$1
,在$2
中找到姓氏的第一个字符
如果名称仅由字母a-z或a-z组成,这将起作用。为了给您更好的答案,您需要给出名称的规格以及您使用的工具。
试试这个(Perl风格):
s/(\w+).*?\s(\w)(\w+)$/$1$2/
将每个文件名与此模式匹配:
^(\w+)\s+(\w+\s+)?(\w)\w*$
并用以下模式替换匹配的字符串以生成帐户名称:
$1$3