php - 正则表达式 X/Y 坐标

标签 php regex coordinate

我有符合这种模式的数据:(x|y)xy 可以是负数,在这种情况下符号 - 存在。 我正在尝试构建一个正则表达式来匹配 x 和 y。

这是我当前的表达方式,它对我来说似乎有效但不起作用:

/\((-?\d+)\|(-?\d+)\)/

这是原始数据:

‭(-112|‭‭-522‬‬)
‭(-112|‭‭522‬‬)
(112|-‭‭522‬‬)
(112|‭‭522‬‬)

有什么想法吗?

最佳答案

您的测试数据中有一些不可见的 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}+ 匹配的所有内容替换为空字符串可能会简单得多。

关于php - 正则表达式 X/Y 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105862/

相关文章:

java - 如何将数量条件添加到正则表达式而不将数量包含到匹配组中?

html - 图像 HTML 上点击点的坐标

android - onclick 按钮替换按钮位置

ios - 如何在 MKMapView swift 中添加覆盖路径

php - 使用 PHP/htaccess/mod_rewrite 强制使用 www 前缀

php - 如何使用 php 代码在 echo 中使用 window.location

正则表达式在 <div class ="customclass"> 和 </div> 标记之间查找和替换

00-59(秒)之间数字的javascript正则表达式

PHP和MVC,多种模型

php - 使用 CSS 格式化 PHP 问题