Javascript 如何使用regexp在原始html文本节点中的非终点点后插入打断标记
我正在尝试创建一个正则表达式,它匹配所有不在引号之间且后面没有“”的点。在这种情况下,组捕获可能会有所帮助 只要捕获另一组中的点,就可以使用甚至捕获字符串表达式:Javascript 如何使用regexp在原始html文本节点中的非终点点后插入打断标记,javascript,regex,Javascript,Regex,我正在尝试创建一个正则表达式,它匹配所有不在引号之间且后面没有“”的点。在这种情况下,组捕获可能会有所帮助 只要捕获另一组中的点,就可以使用甚至捕获字符串表达式: /((?:[^"\.]|(?:"(?:\\\\|\\"|[^"])*"))*)(\.(?!\s*<))((?:[^"\.]|(?:"(?:\\\\|\\"|[^"])*"))*)/g 将生成以下匹配项: 匹配1 完全匹配,从字符0到15:“Thi\\\\”s.。 第1组,从字符14到字符15: 比赛2 完全匹配,从字符1
/((?:[^"\.]|(?:"(?:\\\\|\\"|[^"])*"))*)(\.(?!\s*<))((?:[^"\.]|(?:"(?:\\\\|\\"|[^"])*"))*)/g
将生成以下匹配项:
匹配1
- 完全匹配,从字符0到15:
“Thi\\\\”s.。
- 第1组,从字符14到字符15:
- 完全匹配,从字符15到字符16:
- 第1组,从字符15到字符16:
- 完全匹配,从char 18到char 55:
我想你可以简化一点任务:首先用引号替换所有以引号开头和结尾的子字符串,然后用点计数(或做任何你需要的事情),比如:
也许你能告诉我们你想做什么吗?例如,如果是live HTML,您可以编辑文本内容,忽略标记。问题是我仍然需要以引号开头和结尾的子字符串。例如,我无法删除两个引号之间的“0.5s”。@mplungjan:我更新了我的问题,以明确我在这里要实现的目标。您使用的是什么平台?node.js?浏览器“this.is.a.test sen“tence.”。替换(/“*?”/g)”)
This. is.a.<break time="0.5s"/> test sentence. ^ ^ ^ ^
This. is.a.<break time="0.5s"/> test sentence. ^ ^ ^
/((?:[^"\.]|(?:"(?:\\\\|\\"|[^"])*"))*)(\.(?!\s*<))((?:[^"\.]|(?:"(?:\\\\|\\"|[^"])*"))*)/g
"Thi\\\"s." is..a.<break time="0\".5s"/> test sentence.