仅当组前面没有一个或两个特定字符时,我才想匹配该组。
当前面只有一个字符时,我可以使它工作。 但是,如果我需要检查前面两个字符,我就会卡住。
示例: 我希望匹配“ 2009-2010”,只要“ 2009-2010”前没有“©”或“©”(即版权符号+空格)
示例文本:这是您提供的2009-2010年电话号码
预期结果:2009-2010年比赛
示例文字:保留所有权利©2009-2010
预期结果:不匹配
我的正则表达式适用于前面的一个字符,例如:§@。©-
代码:(?<![§@.©-])\b(\d{4})-(\d{4})\b
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用下面带有负向后看的示例来查找以节符号开头的一组字符,并且可以有一个空格(第二个问号表示在其前面的字符可以出现或不能出现)。
(?<!(©\s?))\b(\d{4}-\d{4})\b
如果您要以任意顺序或长度匹配字符集的不同组合,请在右方括号后使用星号表示该字符可以出现任意次。
(?<![§@.©-]*)\b(\d{4})-(\d{4})\b
答案 2 :(得分:0)
在后面使用负号,匹配一个版权字符或一个版权字符,后跟一个空格。
模式:(?<![§@.©-]|[§@.©-]\s)\b\d{4}-\d{4}\b
说明
(?<!
在后面隐藏一个负数
[§@.©-]
与[§@.©-]
符号组匹配|
或[§@.©-]\s
匹配[§@.©-]
符号组,后跟\s
空格)
关闭后面的负面表情\b
匹配单词边界d{4}-\d{4}
匹配4位数字,后接破折号和另外4位数字\b
结束词边界