正则表达式检查前后字符

时间:2015-06-16 11:58:49

标签: regex

我正在努力构建一个正则函数来过滤所有连字符“ - ”当且仅当该字的前后字符是[a-zA-Z]而没有数字或其他连字号时。

例如,我想过滤这个单词的连字符:Te-st但不适用于此T3E-st

我目前的做法尚未奏效:

([a-zA-Z]+(-)+[\w]+)

1 个答案:

答案 0 :(得分:3)

您可以使用外观:

(?<=[a-zA-Z])-(?=[a-zA-Z])

这意味着匹配-如果它前面跟着一个ASCII字母。

<强>更新

Java不支持.NET之类的无限长度后视,你可以使用类似的东西:

(?<=^[a-zA-Z]{1,999})-(?=[a-zA-Z]*$)

哪个匹配-中的Te-stT3E-st

中的secondryGlobalIndex