正则表达式无法在行首匹配空格

埃伊拉尔

我有以下单元测试来检查XML行首的缩进:

private static final String REGEX_PATTERN = "^\\s+";

@BeforeTest
@Parameters("unformattedXmlFile")
public void setup(String unformattedXmlFile) throws TransformerException, ParserConfigurationException, InstantiationException, IllegalAccessException, ClassNotFoundException {
    EditXmlPanel panel = new EditXmlPanel();
    try {
        String unformatted = readFile(unformattedXmlFile);
        String formatter = panel.prettyFormat(unformatted);         
        String [] lines = formatter.split("\n");

        for(int i=0; i < lines.length; i++) {
            System.out.println(lines[i]);
            if(i !=0 && i !=lines.length -1) {                  
                //Assert.assertEquals((Character.isWhitespace(lines[i].charAt(0))), true);
                Assert.assertEquals(lines[i].matches(REGEX_PATTERN), true);
            }
        }           

    } catch (IOException e) {
        Assert.fail("Unable to read file: " + e.getMessage(), e);
    }

}

我读了一个未格式化的XML文件-没有缩进-然后通过一个函数运行它以漂亮地打印它,例如-正确缩进它。然后,我的单元测试将在每行的开头检查缩进。因此,缩进的行可能如下所示:

         <message code="272" coeMsgName="CCR_I-Credit-Control-Initial" endtoend="AUTO" error="false" hopbyhop="AUTO" proxiable="true" request="true" retransmit="false">

我的正则表达式是:

^\\s+

因此,请在行首匹配任意数量的空格。我已经使用regexr.com检查了模式,这似乎还可以,但是断言总是失败。我不明白为什么。

阿努巴瓦

您的正则表达式必须为:

private static final String REGEX_PATTERN = "\\s+.*";

因为String.matches尝试将全行与您的正则表达式匹配,否则它将返回false。

PS:由于同样的原因,也没有必要使用锚^,并$在你的正则表达式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式仅在行首没有内容时才匹配?

来自分类Dev

正则表达式匹配不在行首的选项卡

来自分类Dev

正则表达式 - 在行首或特定字符之后匹配的最有效表达式

来自分类Dev

正则表达式匹配:被空格或行首包围,但不匹配

来自分类Dev

正则表达式-在空格或行首之后匹配一对重复的字符

来自分类Dev

Vim正则表达式在行尾删除空格

来自分类Dev

JavaScript正则表达式匹配*不是*行首

来自分类Dev

Python正则表达式与行首不匹配

来自分类Dev

Python正则表达式在行首标识两个连续的大写单词

来自分类Dev

正则表达式匹配表达式而不是在行的开头

来自分类Dev

正则表达式匹配任何字符,包括空格

来自分类Dev

正则表达式可匹配任何垂直空格

来自分类Dev

正则表达式以匹配网址中的空格

来自分类Dev

C ++正则表达式将不匹配空格

来自分类Dev

Python正则表达式以匹配空格或开括号

来自分类Dev

正则表达式以使短语与空格匹配

来自分类Dev

正则表达式匹配以提取以空格结尾的文本

来自分类Dev

正则表达式匹配以空格或逗号结尾的单词

来自分类Dev

正则表达式匹配仅包含空格的行

来自分类Dev

正则表达式匹配以空格字符开头的行

来自分类Dev

C#中的正则表达式匹配空格

来自分类Dev

正则表达式仅匹配引号内的空格

来自分类Dev

正则表达式匹配 MINUS 与空格

来自分类Dev

正则表达式不匹配空格

来自分类Dev

忽略正则表达式中的空格并匹配

来自分类Dev

删除正则表达式匹配中的空格

来自分类Dev

\W 匹配器 vs 空格?正则表达式

来自分类Dev

使用正则表达式无法将字符串与可选空格匹配

来自分类Dev

正则表达式匹配行首或一组字符

Related 相关文章

热门标签

归档