регулярное выражение для соответствия одной строке кавычки, которая может содержать '' '' '' '' - PullRequest
1 голос
/ 23 мая 2019

Входная строка может быть:

- "his 'pet''s name is tom' and she is 2 years old"
- " '''' "
- " '' "
- "function('name', test, 'age')"

Я хочу получить строку одинарных кавычек из этих входных данных, которая может даже содержать '' внутри строки одинарных кавычек.

Я пробовал отрицательныйсмотреть вперед (?!'), чтобы игнорировать '' при сопоставлении.

 '.*?'(?!')    

Я ожидаю выхода

- 'pet''s name is tom'
- ''''
- 'name' and 'age'

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Я думаю, что вы можете достичь этого с

r"'[^']*(?:''[^']*)*'"

См. Демоверсию regex

Объяснение

  • ' - одиночная кавычка
  • [^']* - 0+ символов, кроме одинарных кавычек
  • (?:''[^']*)* - ноль или более повторений
    • '' - две одинарные кавычки
    • [^']* - 0+ символов, кроме одинарных кавычек
  • ' - одиночная кавычка

График регулярных выражений :

enter image description here

0 голосов
/ 23 мая 2019

r"'(.+?)'" Чтобы получить строку одинарных кавычек

import re 

tx = "his 'pet''s name is tom' and she is 2 years old"

print(re.findall(r"\'(.+?)\'",tx)) 
#output :  ['pet', 's name is tom'] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...