为了账号安全,请及时绑定邮箱和手机立即绑定

使用正则表达式切换多语言子字符串位置

使用正则表达式切换多语言子字符串位置

Go
青春有我 2022-10-10 18:12:17
带有立陶宛字母的原始输入:Ą.BČĄ.BČ D ĘĄ. BČĄ. BČ D ĘĄ BČĄ BČ D ĘExamples below should not be affected.ĄB ČD DĘ预期结果:BČ Ą.BČ Ą. D ĘBČ Ą. BČ Ą. D ĘBČ Ą BČ Ą D ĘĄB ČD DĘ我试过的:^(.\.? *)([\p{L}\p{N}\p{M}]*)$With ReplaceAllString substitution like so$2 $1我尝试了各种模式,但这是我现在能想到的最好的模式。它设法捕获第 1、第 3 和第 5 行并成功替换,如下所示:(除了行尾的一些额外空格)BČ Ą.Ą.BČ D ĘBČ Ą. Ą. BČ D ĘBČ Ą Ą BČ D ĘĄB ČD DĘ解释:有一组数据具有不同的基础基本结构条目[FIRST NAME FIRST LETTER][LASTNAME],我希望将其理想地带到[LASTNAME][SPACE][FIRST NAME FIRST LETTER][DOT]?链接到正则表达式101: 正则表达式101最终解决方案:^([\p{L}\p{N}\p{M}](?:\. *| +))([\p{L}\p{N}\p{M}]+)    With ReplaceAllString substitution like so    $2 $1
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

对于您的示例数据,您可以省略锚点$并匹配一个点,后跟可选空格,或者 1 个或多个空格。

为了防止字符类出现空匹配,您可以使用+而不是重复它 1 次或更多次*

^(.(?:\. *| +))([\p{L}\p{N}\p{M}]+)

查看正则表达式演示

请注意.可以匹配任何字符,包括空格。您也可以将点更改为单个[\p{L}\p{N}\p{M}]


查看完整回答
反对 回复 2022-10-10
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号