我校对了很多同行提交的明文文件。当我的眼睛疲倦时,我有时会忽略额外的空间或重复的单词。我目前使用以下RegEx搜索:
[/t]{2} -Finds duplicate spaces
(?>(/p{P})\1+)(?<![^.]|^)\.{3}) -Finds duplicate punctuation except ellipses
\b(\w+)\s+\1\b -Finds duplicate words
我也有一些自定义搜索,例如找到“Mister”并替换为“Mr。”
有没有一种简单的方法可以在JavaScript中执行这四种类型的替换函数?
答案 0 :(得分:0)
你的前两个正则表达看起来不太好 你可以将它们全部组合成一个正则表达式。
以下两种类型:
Type-1使用punct
posix字符类
Type-2使用Branch Reset
构造和Punct
属性构造。
只需使用适用于您的平台的正则表达式进行全局查找/替换即可。
类型1 -
# Find: (?:([^\S\r\n])[^\S\r\n]+|\b(\w+)(?:\s+\2)+\b|(\.{3})\.*|([[:punct:]])\4+)
# Replace: $1$2$3$4
(?:
( [^\S\r\n] ) # (1)
[^\S\r\n]+
|
\b
( \w+ ) # (2)
(?: \s+ \2 )+
\b
|
( \.{3} ) # (3)
\.*
|
( [[:punct:]] ) # (4)
\4+
)
类型2 -
# Find: (?|([^\S\r\n])[^\S\r\n]+|\b(\w+)(?:\s+\1)+\b|(\.{3})\.*|(\p{Punct})\1+)
# Replace: $1
(?|
( [^\S\r\n] ) # (1)
[^\S\r\n]+
|
\b
( \w+ ) # (1)
(?: \s+ \1 )+
\b
|
( \.{3} ) # (1)
\.*
|
( \p{Punct} ) # (1)
\1+
)