【发布时间】:2018-10-16 11:30:24
【问题描述】:
我有几个字符串,例如:
test
test. hi
test, hello.(actual whitespace)
hello -this is a test
hello v2 , i am a " test" as well
我想按照一些规则来对齐标点符号,例如:
- 逗号应该有一个尾随空格,但不能有一个前导
- 如果原始字符串的任何一侧至少有一个空格,则连字符的两边都应该有空格
- 当点位于字符串末尾时,除了大小写之外,应该有 s 尾随空格
- 引号(单引号和双引号)在开/关边不应有空格
- etc etc(其他规则将根据需要添加,在这种情况下覆盖前 4 条就足够了)
所以输出会是这样的:
test
test. hi
test, hello.
hello - this is a test
hello v2, i am a "test" as well
我的问题是:是否有可能一次性完成 - 使用单个正则表达式而不是为每种情况创建一个正则表达式,如果是的话 - 可以做到这一点的正则表达式是什么?有没有比单个正则表达式更有效的方法(如果可能的话),特别是考虑到我已经在遍历整个字符串以删除一些特殊的 unicode 字符这一事实?
【问题讨论】:
-
我对你的回答的看法:是的,是的
-
请避免要求社区为您完成工作,而不是提出有效的编程问题。
-
我们无法根据“等”来回答,请更具体一些。
-
this etc 表明还会有其他规则,我会根据需要添加它们,只需涵盖前 4 个的通用技术就足够了
-
规则 4 对于正则表达式来说不是很简单。你如何区分打开和关闭?