对不起,如果问题措辞不佳(或者如果已经问过。我真的试图找到它)。
如果字符类中的一个特定字符恰好是最后一个字符(尽管它仍然可以保留在其他地方),是否有可能将其从匹配中排除?我正在使用的类似于在较大的字符串中查找 url,并且需要在模式中包含句点,但如果最后一个字符是句点,则将其排除在句子的结尾。
所以在一个模式(其他网址的东西)“(/[a-zA-Z0-9._-]*)?” 有没有办法只排除最后一个时期(如果存在)?请注意,上面将具体是域之后的 uri 段,但我只想匹配
"/some_uri/segments.php"
同时
"www.domain.com/some_uri/segments.php"
和
"www.domain.com/some_uri/segments.php."
同时允许 uri 中存在多个句点。
如果上述内容不清楚,想象我在寻求一种方法来排除单词中的最后一个字母,当且仅当它是“z”时。所以 'dozzer' 和 'dozzerz' 在句子结构中都匹配为 'dozzer' (所以......不匹配字符串末尾的位置)。我玩过前瞻之类的东西,但还没有找到方法。我想知道这是否不可能(仅在一个正则表达式中)。
谢谢你的时间!
编辑
我很抱歉没有让它更清楚,但我需要在文本块内执行匹配。我正在做的是浏览文本并找到所有网址并对它们应用标记。因此,我不能使用位置运算符,例如 $ 来匹配字符串的结尾。这是最大的问题。
除非其他人发布在此之后有效的答案,否则我认为我将不得不同意 M477h3w1012 并得出结论,它不能单独在正则表达式中完成。在找到匹配项后,我需要执行条件检查以确定它们是否有尾随句点。但再次感谢大家,非常感谢您的时间和帮助。:-)