有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Regexp查找带条件的子字符串

我尝试编写regexp来查找字符串中带有减号的数字

  1. 这个数字在开始或结束数字上有一个负号(-)
  2. 此子字符串可以以空格开头或/和结尾,也可以以字符串开头或结尾
  3. 另一个字符串可以包含此子字符串,但没有空格,需要排除此字符串

regexp应该匹配这些字符串

abc ghhkjl -123
123- gfdhs kljf
fdsg -123 fdjol
jklp 123- ljfds
-123
123-

regexp不应与这些字符串匹配

abc ghhkjl-123
123-gfdhs kljf
fdsg -123fdjol
jklp123- ljfds

我的regexp是的

(?:^|\W|\w+\s)\d+(?:$|\W|\s\w+)

请帮忙


共 (1) 个答案

  1. # 1 楼答案

    听起来你可以用lookarounds来强制被空格包围,开始或结束

    (?<!\S)(?:\d+-|-\d+)(?!\S)
    

    See this demo at regex101

    上面的\S匹配的字符不是空格(对\s的否定)