这与正则表达式-在块中格式化文本有些相关,但问题不同。
寻找带有以下条件的
条件:
结尾将会是:
寻找带有以下条件的
-
的包装文本:条件:
- 标记可以位于行的开头或结尾。
- 标记必须被空格或一个或多个符号包围:{.,!@#$....}。
- 问
题的-
对所包含的正常字符[a-zA-Z]不能包围。 - 查看示例测试3...w-thank you-
- 测试4和5成功是因为
-
被[^a-zA-Z]包裹
- 问
- 第一个
-
后面不能跟一个空格,最后一个-
前面也不能跟一个空格- "-Wow -"将不匹配,因为关闭
-
之前有一个空格。 - 查看示例测试6和7
- "-Wow -"将不匹配,因为关闭
(^|[\s\W]+)
结尾将会是:
($|[\s\W]+)
我有当前的表达式,但由于转义条件在找到第一个-
后停止,所以它失败了。 (^|[\s\W]+)-([^\s][^-]*)-($|[\s\W]+)
样例测试字符串如下:
- (全部):
-哇-谢谢你-
- (哇):
-哇-谢谢你!
- (NIL):
- 哇-谢谢你-
- (谢谢你):
- 哇!-谢谢你-
- (谢谢你):
- 哇-谢谢你-
- (全部):
-哇 - 谢谢你-
- (NIL):
-哇 - 谢谢你 -
这需要使用后顾吗?(我是正则表达式新手,请多包涵)还是我的中间条件完全错误。
非常感谢!
mwolfe。
\w
类包括下划线和数字!最好使用[a-zA-Z]
或[a-zA-Z0-9]
。 (2) 通过使用/.../i
修饰符可以调用不区分大小写的匹配,因此只需要编写[a-z]
或[a-z0-9]
即可。 (3) 注意字符的宇宙不仅限于字母、数字和符号。你说标记必须被空格或一个或多个符号包围。但是你又说,好像等价的是,它不能被[a-zA-Z]
包围。这些不一定相同。 - Andrew Cheong