我需要制作一个正则表达式(.net 风格),仅匹配以下字符串中的“sometext”(第二行末尾有一个空格):
sometext
sometext
sometext dsf 2131
sometext-1234
但不会匹配下列任何内容:
sometext 12
sometext 3
sometext2
sometext-1
也就是说,仅当“sometext”后面没有任何可选的分隔符(例如空格、“-”、“/”、“.”)和 1 或 2 位数字(3 位或更多数字也可以)时,它才应该匹配“sometext”。
我尝试了这个正则表达式与负面预测
sometext($|\W(?!\d{1,2}))
但没走太远。
尝试这个
正则表达式解释:
我将使用以下负面前瞻方法:
这个模式表示匹配:
sometext
匹配文字‘sometext’(?!
展望并否定地断言(?:[/.-]|\s*)
后面不是/.-
分隔符,也不是零个或多个空格\d{1,2}\b
后面跟着一位或两位数字)
前瞻结束演示
您可以利用
\W
将其添加到负前瞻中:查看正则表达式 101 演示
注意匹配
\W
非单词字符,这不仅仅是-
/
.
如果您不想匹配0个或多个分隔符,
-
/
.
您也可以使用:查看另一个正则表达式 101 演示