我试图制作一个分隔符正则表达式(用于 java.util.Scanner),该表达式在空格上对字符串进行分割,同时将冒号、左括号和右括号保留为单独的标记。也就是说,
我目前最好的尝试是模式
foo(a:b)
应该被分割成标记 foo
、(
、a
、:
、b
和 )
。我目前最好的尝试是模式
"\\s+|(?=[(:])|(?<=[:)])"
,但由于某种我无法理解的原因,它无法匹配开括号和闭括号之间的内容,但可以在冒号的两侧正确匹配。
\s+|(?=[():])|(?<=[:(])
,请访问https://regex101.com/r/9pSfWr/1 - The fourth bird"\\s+|(?=[():])|(?<=[:()])"
。 - Wiktor Stribiżew