正则表达式以匹配末尾的句点,但应使用单词边界

时间:2019-05-31 07:20:20

标签: java regex

想在末尾匹配句号(.),但在正则表达式中应在末尾匹配单词边界。我不想破坏现有功能。

我已经尝试过将\b\S替换为\B00-00-110(1)(1), A.B.C这样的正则表达式,但是它只适用于很少的输入,而对于其他测试用例却无效。

请参阅我的regex

  • 实际结果:00-00-110(1)(1), A.B.C.
  • 预期结果:class ReadDirectory { public static string[] readDir() { string textFile = @"C:\Users\Nurgaliev.IA\source\repos\ConsoleApp3\ConsoleApp3\bin\Debug\paths.txt"; string[] lines = null; if (File.Exists(textFile)) { lines = File.ReadAllLines(textFile); } return lines; }

1 个答案:

答案 0 :(得分:0)

如果您的实际单词边界是空白边界,则需要删除最后的\b并将(?!\s)替换为(?!\S)。参见your updated demo

如果您只打算在第2组末尾匹配一个可选的.,只需在第2组模式末尾添加\b\.?,请参见this regex demo

关于在regex101上测试Java regex :由于Java regex在regex101上无法运行PCRE演示,因为您在此处有\uXXXX标记。将\\u00a7替换为\xA7,以使其与Java一样工作。