提问人:Sudantha 提问时间:10/11/2023 更新时间:10/11/2023 访问量:58
正则表达式匹配撇号(')中的破折号(-)
Regex to match dashes(-) within apostrophe(')
问:
我正在尝试编写一个正则表达式来仅在撇号(')中匹配匹配破折号(-)
示例数据:
( NOT TABLE-FIELD BEWEEN 'XX-XX' AND 'XX-XX' ) AND ( TABLE-FIELD = 'XXX-XXX-XXX' )
对匹配的期望 - 在 '' 和它应该忽略 - 在 '' 示例之外 , TABLE-FIELD
(不是 'XXXX' 和 'XXXX' 之间的表字段)和 ( TABLE-FIELD = 'XXXXXX' )-
-
-
-
到目前为止,想出这个,它将与里面的内容相匹配,但不确定要写什么表达式来限制它,仅限于 -(')()[^ ]*
结果
( 不是 TABLE-FIELD BEWEEN 和 )和 ( TABLE-FIELD ='XX-XX'
'XX-XX'
'XX-XX-XX'
)
答:
2赞
Cary Swoveland
10/11/2023
#1
如果可以假设总是有偶数个单引号,我们可以推断连字符位于单引号分隔的短语中,当且仅当字符串中连字符后面的单引号数为奇数时。如果匹配以下正则表达式,则会发生这种情况。
-(?=[^']*'(?:(?:[^']*'){2})*[^']*$)
评论
0赞
Sudantha
10/11/2023
谢谢@cary-swoveland,这很好用,
评论
[^']*(?=(('[^']*){2})*$)(*SKIP)(?!)|-