Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式匹配逗号和句点,除非被数字包围_Java_Regex - Fatal编程技术网

Java 正则表达式匹配逗号和句点,除非被数字包围

Java 正则表达式匹配逗号和句点,除非被数字包围,java,regex,Java,Regex,我有正则表达式: [^\w-,.]|( 它与所有非[\w-,.]匹配,或者使用负查找,匹配任何不带数字的逗号或句点 使用与java兼容的正则表达式,我需要捕获: [^\w,.] ,除非前面和后面有\d (例如,1,2,3没有捕获,而是在1,2,3中捕获[\s,]) 除非前面和后面有\d (例如,12.32没有捕获,但23有捕获。) 我的正则表达式让我很接近,但是,我无法捕获以下示例中的逗号和句点: 1.a(需要捕获时段) 32,foo(需要捕获逗号和空格) 1.1.(需要捕获最后一

我有正则表达式:

[^\w-,.]|(

它与所有非
[\w-,.]
匹配,或者使用负查找,匹配任何不带数字的逗号或句点

使用与java兼容的正则表达式,我需要捕获:

  • [^\w,.]
  • 除非前面和后面有
    \d
    • (例如,
      1,2,3
      没有捕获,而是在
      1,2,3
      中捕获
      [\s,]
  • 除非前面和后面有
    \d
    • (例如,
      12.32没有捕获,但
      23有捕获。
我的正则表达式让我很接近,但是,我无法捕获以下示例中的逗号和句点:

  • 1.a
    (需要捕获时段)
  • 32,foo
    (需要捕获逗号和空格)
  • 1.1.
    (需要捕获最后一个句点)
下面的示例演示了要匹配的工作字符串和非工作字符串的示例

这个怎么样

[^\w-,.]|((?<!\d)[,.]|[,.](?!\d))
[^\w-,.]|(?
,,其中我稍微更改了您的正则表达式,只是添加了一个不后跟数字的大小写