输入字符串可以是:
- "his 'pet''s name is tom' and she is 2 years old"
- " '''' "
- " '' "
- "function('name', test, 'age')"
我想从这些输入中获取单引号字符串,甚至可能在单引号字符串中包含''
。
我尝试了否定的前瞻性(?!')
以在匹配时忽略''
。
'.*?'(?!')
我希望输出
- 'pet''s name is tom'
- ''''
- 'name' and 'age'
答案 0 :(得分:0)
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']
答案 1 :(得分:0)
我认为您可以通过
实现$str = str_replace(' ', ' ', $text);
$str = html_entity_decode($str, ENT_QUOTES | ENT_COMPAT , 'UTF-8');
$str = html_entity_decode($str, ENT_HTML5, 'UTF-8');
$str = html_entity_decode($str);
$str = htmlspecialchars_decode($str);
$text = strip_tags($str);
请参见regex demo
说明
r"'[^']*(?:''[^']*)*'"
-单引号'
-除单引号外的0+个字符[^']*
-的零次或多次重复
(?:''[^']*)*
-两个单引号''
-除单引号外的0+个字符[^']*
-单引号