簡體   English   中英

如何使用正則表達式確定標頭級別(JavaScript)

[英]How to Determine Header Level Using Regular Expressions (Javascript)

我正在使用Node.js讀取我從客戶那里收到的工作場所訂單的減價文件。 我將文件分成幾行,並在每行上執行檢查以查看它是什么(h1,h3,任務等),但是讓RegExps正常工作遇到很多麻煩。 這是我到目前為止的代碼:

var filesystem = require('fs');
let content;
let missingItems = [];

filesystem.readFile('orders.md', 'utf8', (err, res) => {
    let content = res;
    let lines = content.split('\n');
    lines.forEach(line => {
        if(line.match(/#{1}/)){
            console.log('Store Name: ', line);
        };
    });
});

但是,此代碼返回所有h1和h3行。 我看到在線使用RegExp 101,問題是我的RegExp被h3線匹配了3次,為h1線匹配了一次。

如何編寫對h1和h3行都不會返回true的正則表達式? 我不明白為什么當我明確地說match {1}(ONCE)時會匹配3次

這是我一直在使用其測試表達式的測試區域,以及一些我要針對其進行測試的示例文本: RegExp101

您正在詢問該行是否包含(至少)一個帶有該正則表達式的#,這兩個行都包含。 您可以使用否定的前瞻:

^#(?!#)

^表示“行首”,然后是文字磅符號,然后是(?!pattern)形式的負前瞻,因此我們期待看到另一個磅符號。

更簡單的方法是測試初始#和以下空格\\s

^#\\s

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM