用JavaScript和Regex校对文本
我校对了很多同行提交的明文文件。当我的眼睛疲劳时,我有时会忽略多余的空格或重复的单词。我目前使用以下正则表达式搜索:用JavaScript和Regex校对文本,javascript,regex,replace,Javascript,Regex,Replace,我校对了很多同行提交的明文文件。当我的眼睛疲劳时,我有时会忽略多余的空格或重复的单词。我目前使用以下正则表达式搜索: [/t]{2} -Finds duplicate spaces (?>(/p{P})\1+)(?<![^.]|^)\.{3}) -Finds duplicate punctuation except ellipses \b(\w+)\s+\1\b -Finds duplicate words [/t]{2}-查找重复的空格 (?>(/p{p})\1+(?
[/t]{2} -Finds duplicate spaces
(?>(/p{P})\1+)(?<![^.]|^)\.{3}) -Finds duplicate punctuation except ellipses
\b(\w+)\s+\1\b -Finds duplicate words
[/t]{2}-查找重复的空格
(?>(/p{p})\1+(?)?
我也有一些自定义搜索,例如查找“先生”并替换为“先生”
有没有一种简单的方法可以在JavaScript中执行这四种类型的替换函数?前两个正则表达式看起来不太好。
不过,您可以将它们组合成一个正则表达式
在以下两种类型中:
Type-1使用punct
posix字符类。
类型-2使用分支重置
构造和点
属性构造
只需使用与您的平台兼容的正则表达式进行全局查找/替换
第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+
)
前两个模式的可能重复项为false。替换字符串在哪里?我从一个简单的解决方案开始,使用。在这里,我使用上面的示例,替换字符串为$1,或者对于第一个示例,我只是将其替换为一个空格。我不明白问题是什么。Javascript支持正则表达式,因此,请学习如何使用API并使用它。如果您有特定的问题,请提出问题。有一篇很好的文章,但还有很多其他的。