我需要帮助,以建立一个正则表达式,以找到所有连字符,其上和下一个字符不是and和and。下面是应该找到连字符的例子。
This is - test
this is -test
this is- test
this is 2- test
this is 2 -test
this is 2-2 test以下是忽略连字符的示例:
this is-test到目前为止,我还能这样写:
(?<=[^a-z])-(?=[^a-z])这只是在行中搜索以下连字符:
This is - test
this is 2- test
this is 2-2 test非常感谢。
发布于 2020-03-05 20:59:41
首先,您可以使用否定的查找头/后置(除非您想确保连字符前面有什么东西),而不是在积极的查找/查找后面使用否定的类。现在,你的模式意味着:
匹配没有
[a-z]和后面没有[a-z]的连字符。
而你似乎在寻找:
匹配一个连字符,该连字符既不是
[a-z]前面的,也不是[a-z]后面的。
在这种情况下,您可以使用以下方法:
(?<![a-z])-|-(?![a-z])。
或者,如果您想用否定的类保持正向查找:
(?<=[^a-z])-|-(?=[^a-z])注意:您提到的要检查a-z和A-Z的,但是在您的示例中,您只使用a-z。为了检查这两种情况,您可以在上面的模式中用[a-z]替换[a-zA-Z]。
https://stackoverflow.com/questions/60553814
复制相似问题