正则表达式 X/Y 坐标
Regex X/Y coordinate
我有符合这种模式的数据:(x|y)
。 x
和 y
可以是负数,在这种情况下符号 -
存在。
我正在尝试构建一个正则表达式来匹配 x 和 y。
这是我当前的表达方式,对我来说似乎有效但不起作用:
/\((-?\d+)\|(-?\d+)\)/
这是原始数据:
(-112|-522)
(-112|522)
(112|-522)
(112|522)
有什么想法吗?
你必须像这样用反斜杠转义减号 \-
。它是为 a-z
这样的模式保留的
您的测试数据中有一些不可见的 Unicode 字符。
删除它们,您的正则表达式将 work just fine。
比如你的例子(-112|-522)
实际上是\u0028\u002d\u0031\u0031\u0032\u007c\u202d\u202d\u002d\u0035\u0032\u0032\u202c\u202c\u0029
.
你有一些U+202D
(LEFT-TO-RIGHT OVERRIDE)和U+202C
(POP DIRECTIONAL FORMATTING) 在那里。
如果你想在你的正则表达式中允许这些,你可以包括它们:
\(\p{Cf}*(-?\p{Cf}*\d+)\p{Cf}*\|\p{Cf}*(-?\p{Cf}*\d+)\p{Cf}*\)
但是模式变得非常混乱。我只是在其中添加了一堆 \p{Cf}*
以允许这些字符。请注意,在尝试将捕获的子字符串转换为整数之前,您仍然需要去掉减号和数字之间的字符。
在继续使用原始模式之前,将与 \p{Cf}+
匹配的所有内容替换为空字符串可能会简单得多。
您可以在 Regexr 中对此进行测试,这是我想出的地方,但这应该可以满足您的需求
正则表达式
/\((-?[0-9]+\.?[0-9]+)\|(-?[0-9]+\.?[0-9]+)\)/
测试值
(-112|-522)
(-112|522)
(112.35|-522)
(112|522.5)
我有符合这种模式的数据:(x|y)
。 x
和 y
可以是负数,在这种情况下符号 -
存在。
我正在尝试构建一个正则表达式来匹配 x 和 y。
这是我当前的表达方式,对我来说似乎有效但不起作用:
/\((-?\d+)\|(-?\d+)\)/
这是原始数据:
(-112|-522)
(-112|522)
(112|-522)
(112|522)
有什么想法吗?
你必须像这样用反斜杠转义减号 \-
。它是为 a-z
您的测试数据中有一些不可见的 Unicode 字符。
删除它们,您的正则表达式将 work just fine。
比如你的例子(-112|-522)
实际上是\u0028\u002d\u0031\u0031\u0032\u007c\u202d\u202d\u002d\u0035\u0032\u0032\u202c\u202c\u0029
.
你有一些U+202D
(LEFT-TO-RIGHT OVERRIDE)和U+202C
(POP DIRECTIONAL FORMATTING) 在那里。
如果你想在你的正则表达式中允许这些,你可以包括它们:
\(\p{Cf}*(-?\p{Cf}*\d+)\p{Cf}*\|\p{Cf}*(-?\p{Cf}*\d+)\p{Cf}*\)
但是模式变得非常混乱。我只是在其中添加了一堆 \p{Cf}*
以允许这些字符。请注意,在尝试将捕获的子字符串转换为整数之前,您仍然需要去掉减号和数字之间的字符。
在继续使用原始模式之前,将与 \p{Cf}+
匹配的所有内容替换为空字符串可能会简单得多。
您可以在 Regexr 中对此进行测试,这是我想出的地方,但这应该可以满足您的需求
正则表达式
/\((-?[0-9]+\.?[0-9]+)\|(-?[0-9]+\.?[0-9]+)\)/
测试值
(-112|-522)
(-112|522)
(112.35|-522)
(112|522.5)