我正在使用Codemirror构建一个texteditor,其中包含一些不错的功能,例如语法高亮,使用simple mode中的语言模式,并尝试编写几个正则表达式以匹配段落的第一个和最后一个单词。例如,在:
One
is the first one
of all the numbers
Two is
the second
第一个正则表达式(段落中的第一个单词)应与One
和Two
匹配,第二个正则(段落中的最后一个单词)应与numbers
和second
匹配。
我一直在尝试不同的表达,但最终找不到合适的表达方式。这是我得到的最接近的,但显然还不对:
/[^\r\n]+[a-zA-Z]\s/
有人能指出我正确的方向吗? 提前谢谢。
答案 0 :(得分:1)
使用Notepad ++和rubular.com
进行测试 查找内容: ^([A-Z]\w+)(\s\w+)?((\r?\n|\r)([a-z]+\s)+)+(\w+)$
替换为: \1\n\6
<强>输入强>
One
is the first one
of all the numbers
Two is
the second
Three is
the third
Four is
the fourth
of all the numbers
<强>输出强>
One
numbers
Two
second
Three
third
Four
numbers
<强> Rubular 强>
答案 1 :(得分:0)
我知道这个问题已经开放了一段时间,但想分享一下CodeMirror正则表达式,通常的'^'不能用于开始行/字符串匹配。但是,{regex:...,sol:true}工作正常。 例如。在defineSimpleMode()中 “sol”代表“行首”