如何查找和替换两个变量的两个字符串?
我是新来的正则表达式,我遇到了一个问题。如何查找和替换两个变量的两个字符串?
我有以下文字:| latitude = anynumber1 | longitude = anynumber2 |
我想知道我该如何使用正则表达式来找到:| latitude = anynumber1 | longitude = anynumber2 |
并将其替换为:| coordinates = {{coord|anynumber1|anynumber2}} |
,我有以下格式的许多网页:| latitude = anynumber1 | longitude = anynumber2 |
只是经度和纬度的数字随着每一页的变化而变化,现在我不得不在所有页面上将它改变成更新的格式。我如何使用正则表达式查找和替换?
您可以使用下面的正则表达式的基础更换:
查找内容:\|\s*latitude\s*=\s*(\d+)\s*\|\s*longitude\s*=\s*(\d+)\s*\|
替换:| coordinates = {{coord|$1|$2}} |
详细:
-
\|
- 字面|
-
\s*
- 0+空格 -
latitude
- 串latitude
-
\s*=\s*
- 一个=
包围0+空格(\s*
) -
(\d+)
- 第1组捕获1或更多数字 -
\s*\|\s*
- a|
用0+空格包围 -
longitude
- 一个longitude
文本 -
\s*=\s*
- 一个包围0+空格 -
(\d+)
|
- 组2捕捉1个或多个数字 -
\s*\|
- 0+空格+|
的$1
并且替换模式中的$2
分别将捕获的值插入到组1和2中。
伟大的工作。谢谢!如果|会发生什么?纬度= anynumber1 |经度= anynumber2 |是两条不同的路线? –
\ s'匹配水平和垂直空白符号无关紧要。 “*”量词使其匹配0个或更多的事件。有关正则表达式的更多详细信息,请查看[Regular-Expressions.info](http://regular-expressions.info)网站。 –
当我换行时它不工作。参见[http://regexstorm.net/tester?p=%5c%7c%5cs*latitude%5cs*%3d%5cs*(%5cd%2b)%5cs*%5c%7c%5cs*longitude%5cs* %三维%5CS *(%5CD%2b)的%5CS *%5C%7C与I =%7C +纬度+%3D + 1个++%0D%0A%7C +经度+%3D + 2 ++%0D%0A%7C +纬度+%3D + 321 ++%0D%0A%7C +经度+%3D + 22 ++%0D%0A%7C +纬度+%3D + 31 ++%0D%0A%7C +经度+%3D + 42&R =%7C +坐标+%3d +%7b%7bcoord%7c%241%7c%242%7d%7d +%7c](这里) –
你已经试过了什么吗?你知道,'|'是特殊的正则表达式元字符,如果你打算将它们作为文字字符匹配,则需要转义。你使用什么工具? –
不,我没有尝试过任何东西。我对此完全陌生。我不知道从哪里开始。是的,管道'|'需要在这里算作一个字符串。 –
无论如何,你打算使用什么工具/编程语言? –