想在末尾匹配句号(.
),但在正则表达式中应在末尾匹配单词边界。我不想破坏现有功能。
我已经尝试过将\b
和\S
替换为\B
和00-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;
}
答案 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一样工作。