使用正则表达式,将短划线后的单词移动到每行的开头

时间:2018-03-06 15:45:41

标签: regex notepad++

我想用破折号将短划线后的单词移动到每行的开头。

例如:

::absence – absense, absance
::acceptable – acceptible
::accidentally/accidently – accidentaly

应改为:

absense, absance::absence – 
acceptible::acceptable – 
accidentaly::accidentally/accidently – 

1 个答案:

答案 0 :(得分:2)

找到这个正则表达式:

(?m)^(::.+\ –\ )(.+)$

替换为:

\2\1

在其他正则表达式工具中,替换语法可能是$2$1

Demo in regex101

搜索正则表达式的说明:

(?m)     # enable the `m` flag for multiline mode (make ^ and $ match at line boundaries)
^        # at the start of the line
(        # capture the part before the dash
  ::       # the string '::'
  .+       # any characters right before…
  \ –\     # the string ' – '
)        # end the first capture
(.+)$    # capture the rest of the line

使用Notepad ++,您需要在开头使用(?m)启用多行模式,因为该接口没有其他方法可以启用该模式。检查“。匹配换行符“复选框也会启用m,但是”。匹配换行符“应该取消选中,否则会破坏正则表达式中的两个.+