现有正则表达式允许单引号的新规则
本文关键字:新规则 规则 正则表达式 许单引 | 更新日期: 2023-09-27 17:59:53
我在这里问了另一个问题,但我仍然有问题。
我有一个表达式,它遵循一些规则:
- 字符"必须是第一个和最后一个字符
- "内可以有零个或多个空格
- "内部可以有零或更多%
-
"中可以有零个或多个单词(字母和数字)表达式:
(?i)^(?<q>['])[%'p{Zs}'p{L}'p{N}|()]*'k<q>$
现在,必须有另一条规则:
- "对之间可以有零个或多个单词
示例:
'content1' this text should pass 'content2'
更新:
这里的诀窍是以下内容也应该通过:
' content ' text ' > pass
' ' content ' > pass
它会是什么样子?如果你知道任何关于正则表达式的好书,它对我也很有用
您可以使用|
运算符将其添加到备选列表中:
^(?<q>')(?:'[^']*'|[%'p{Zs}'p{L}'p{N}|()])*'k<q>$
我删除了'
周围的[]
,并将*
量词放在备选列表中。此外,(?i)
是多余的,因为正则表达式中没有文字字母。
这是regex演示
请注意,这个'content1' it won't pass 'content2'
不会通过,但我想这是预期的行为。
更新:
如果你只想让'
在'...'
之间,你可以把它添加到字符类:
^(?<q>')['%'p{Zs}'p{L}'p{N}|()]*'k<q>$
请参阅另一个演示(添加'r?
是为了在多行模式中进行演示)