簡體   English   中英

用於轉義某些單引號的正則表達式

[英]Regex for escaping some single quotes

我正在創建一些用於匹配字符串的正則表達式,例如: 'pulkit' '989' 基本上是兩個單引號之間的任何內容。 所以我創建了一個類似於['][^']*[']的正則表達式。

但這不適用於諸如“漢堡王”之類的情況。 預期的輸出是burger king's但從我的邏輯來看,它只是burger king 作為另一個例子'pulkit'sharma'預期的輸出應該是pulkit'sharma

那么任何人都可以幫助我嗎? 在這種情況下如何轉義單引號。

您可以匹配前面沒有單詞 char 而后跟單詞 char 的單引號,並匹配任何文本直到'前面有一個單詞 char 而沒有跟在單詞 char 之后:

(?s)\B'\b(.*?)\b'\B

請參閱.NET 正則表達式演示

請注意,您不必用方括號將單引號括起來,它們不是特殊的正則表達式元字符。

C#代碼:

var matches = Regex.Matches(text, @"(?s)\B'\b(.*?)\b'\B")
    .Cast<Match>()
    .Select(x => x.Groups[1].Value)
    .ToList();

嘗試正向前瞻以匹配空格或行尾以匹配結束單引號

'.+?'(?=\s|$)

演示

暫無
暫無

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

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