在文件开头匹配正则表达式无法按预期工作 [已关闭]

Matching a regular expression at the begining of a file does not work as expected [closed]

提问人:user2609605 提问时间:11/13/2023 更新时间:11/13/2023 访问量:52

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

6天前关闭。

从本质上讲,我想检测乳胶文档,即以

\documentclass[...]{...}

好吧,这并不容易,但对于第一枪来说,足以解释我的问题。

在 java 中,适用于此类文档的模式是

"\\A[\\n\\r]"+
"\\\\(documentstyle|documentclass)\\s*(\\[[^]]*\\])?\\s*\\{(?<class>[^}]+)\\}"

双斜杠是为了转义斜杠,所以正则表达式实际上是 将两个斜杠替换为一个斜杠。 匹配字符串的开头, 但现在它变得很奇怪:没有它就不匹配, 但是当我看我的十六进制编辑器,看我的文件时, 反斜杠前面什么都没有! 读取文件会引入字符吗?\A[\n\r]

帮助非常感谢。

Java 正则表达式 文件

评论

2赞 shmosel 11/13/2023
您是否检查了要匹配的实际字符串的字符?看到一个最小的可重现示例会很有帮助。
0赞 VGR 11/14/2023
我认为这已关闭,因为我们无法在看不到文件的情况下对其进行故障排除。如果您编辑问题并显示十六进制编辑器的屏幕截图,也许会有所帮助。如果您可以包含指向导致问题行为的示例输入文件的链接,那将非常有用,因为这将让我们自己看到该行为。
0赞 sln 11/14/2023
不知道为什么这个被关闭了,有人可以解释吗?我发现你的正则表达式工作正常,只需替换 -> regex101.com/r/SkaFEc/1 几乎所有其他问题都在正则表达式标签上关闭。只有标记为“重复”的问题才比它更胜一筹。在正则表达式的世界里,一定没有什么新东西不能用标记的重复来回答。\s*[\r\n]\A\s*\\(document(?:style|class))\s*(\[[^]]*\])?\s*\{(?<class>[^}]+)\}

答: 暂无答案