帶有立陶宛字母的原始輸入:
?.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]?
鏈接到 regex101: regex101
最終解決方案:
^([\p{L}\p{N}\p{M}](?:\. *| ))([\p{L}\p{N}\p{M}] )
With ReplaceAllString substitution like so
$2 $1
uj5u.com熱心網友回復:
對于您的示例資料,您可以省略錨點$并匹配一個點后跟可選空格,或者 1 個或多個空格。
為了防止字符類的空匹配,您可以使用 而不是重復它 1 次或多次*
^(.(?:\. *| ))([\p{L}\p{N}\p{M}] )
查看正則運算式演示
請注意,.可以匹配任何字符,包括空格。您也可以將點更改為單個[\p{L}\p{N}\p{M}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/347820.html
