簡體   English   中英

正則表達式-查找和替換引號之間的單引號

[英]Regex - Find and replace single quotes between quotes

我有一個公司數組,其中很多公司名稱(數組鍵)包含單引號。
只是想在array keyStartingEnding單引號之間轉義單引號字符。

正則表達式:

('[^']*)'s([^']*')

樣品:

'BJs Wholesale Club' => 'A',
'BJ's Wholesale Club' => 'A',
'Dillard's' => 'A',
'Divi's Labs' => 'A',
'Divis Labs' => 'A',
'ESKAY K 'N' (PVT) LTD' => 'B',
'Nahar Ind'l Enterprises' => 'A',
'Toys 'R' Us' => 'A',
'ToysR Us' => 'A',

要求的輸出:

'BJs Wholesale Club' => 'A',
'BJ\'s Wholesale Club' => 'A',
'Dillard\'s' => 'A',
'Divi\'s Labs' => 'A',
'Divis Labs' => 'A',
'ESKAY K \'N\' (PVT) LTD' => 'B',
'Nahar Ind\'l Enterprises' => 'A',
'Toys \'R\' Us' => 'A',
'ToysR Us' => 'A',

我的正則表達式不適用於包含非\\'s或多個單引號的公司

演示: https : //regex101.com/r/23aBEI/2

這應該與您要轉義的每個單引號匹配:

(?<!^)'(?=.*' =>)

通過選擇不在行首( (?<!^) )處的每個單引號,並在某些時候通過使用' =>部分( (?=.*' =>) )后跟它來工作環顧四周

用記事本++中的\\\\'替換所有出現的內容將得到以下結果:

'BJs Wholesale Club' => 'A',
'BJ\'s Wholesale Club' => 'A',
'Dillard\'s' => 'A',
'Divi\'s Labs' => 'A',
'Divis Labs' => 'A',
'ESKAY K \'N\' (PVT) LTD' => 'B',
'Nahar Ind\'l Enterprises' => 'A',
'Toys \'R\' Us' => 'A',
'ToysR Us' => 'A',

由於Notepad ++支持PCRE(允許我們使用向后搜索),並且它還支持多行,因此可以使用以下方法進行操作:

可變的后向: (?<!^|=> )'(?! =>|,$)

毫不留情地回首: (?<!^)(?<!=> )'(?! =>)(?!,$)

標志:多行。 替換為: \\\\'

此正則表達式匹配整個公司名稱(使用+運算符的貪婪性)。

'([a-zA-Z0-9\(\)' ]+)'

如果原始字符串還包含“ =>'A'”,並且您不想解析該字符串,則可以使用以下命令:

^'([a-zA-Z0-9\(\)' ]+)'

注意:您需要激活m標志才能使此功能生效

在第1組中,您將擁有您的公司名稱

暫無
暫無

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

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