簡體   English   中英

匹配單詞沒有點與Python正則表達式

[英]Matching word without dot with Python regex

我在文件中有一行可以有2種格式:

/begin MEASUREMENT XXX.YYYY "Status ASC" 

/begin MEASUREMENT XXXX "Status ASC" 

我想寫一個第一種格式不匹配可以匹配第二種格式的表達式,可以從第二種格式給我XXXX。

我嘗試了下面的表達,但無法得到理想的結果:

/begin\s+MEASUREMENT (\w+)

我的正則表達式可以做些什么改變?

\\w+之后你可能需要一個空格:

/begin\s+MEASUREMENT (\w+)(?!\S)
/begin\s+MEASUREMENT (\w+)(?=\s|$)
/begin\s+MEASUREMENT (\w+)(?:\s|$)

請參閱正則表達式演示Regulex圖

在此輸入圖像描述

如果下一個char不是非空格,則(?!\\S)是一個負向前瞻,它會使匹配失敗。 它的含義與(?=\\s|$)相等,是一個正向前瞻,需要在當前位置右側立即使用空格或字符串結尾。 (?:\\s|$)是后一個正則表達式的消費變體(即空格,如果匹配,將落在整個匹配中),但由於你之前正在捕獲這個詞,所以它應該不是問題。

您可以使用單詞邊界\\b和負向前瞻(?!來斷言右邊的內容不是點:

/begin\s+MEASUREMENT (\w+)\b(?!\.)

正則表達式演示

暫無
暫無

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

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