簡體   English   中英

正則表達式以匹配引號中沒有的單個單詞/字符集

[英]Regex to match single words/character sets that aren't in quotes

我正在尋找寫正則表達式(C#),以匹配不被引號引起來的單詞。 輸入字符串的示例為:

dbo.test line_length“被引用的單詞”未引用

這需要匹配

dbo.test

line_length

未引用

因此,3個單獨的匹配項與“被引用的單詞”不匹配。 引用的短語可以在輸入中的任何位置...開頭,中間,結尾等。

我還無法提出一個正則表達式來匹配不在引號中的單詞,否則引號中可能會有空格...我已經能夠匹配類似這樣的東西:hello“ world”並且只會得到hello。

有沒有辦法寫我想寫的正則表達式?

有兩種方法可以解決此問題,具體取決於您要對輸出執行的操作。

首先,匹配(但不捕獲)引號內的任何文本。 (這是專門匹配你不想要的東東)。使用| 管道,使用捕獲組選擇您要保留的所有內容。

例:

".*?"|(\b\S+\b)

您可以在此處查看示例。

使用環顧四周的另一種方法是從單詞的開頭專門向后看,以確保"不會出現在此處:

(?<!")(\b\S+\b)(?!")

您可以在這里看到。

當您開始使用多個單詞時,這可能會出現問題,但這應該使您走上正確的道路,並且可以指出這些方法中的一種是否比另一種更好。

暫無
暫無

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

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