首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JS或python中搜索url中的日期模式并用句点替换正斜杠

如何在JS或python中搜索url中的日期模式并用句点替换正斜杠
EN

Stack Overflow用户
提问于 2022-10-24 12:46:20
回答 2查看 43关注 0票数 1

如果有人问过并回答了这个问题,我很抱歉,但我看不出来。

我有一个托管表单,我想用查询字符串预填充已知的数据,该字符串可以包含多个日期。日期不使用正斜杠填充到表单中,而是使用句点填充;因此,我希望将代码步骤放到Zapier中,以便在URL形成之后,我可以进行替换,然后对剩下的内容进行编码。Zapier有Javascript或Python。

我在Python中没有任何地方,但在JS中却有这么多。

设INPUT = inputData.INPUT;

设输出= INPUT.replace(/b\d{2}/\d{2}/\d{4}/g,".");

输出={输入,输出};

我想我已经接近了,但是上面的每一个变化都可以代替所有的正斜线,或者用句号替换除日期以外的所有内容。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2022-10-24 14:26:59

这里有一个Python解决方案。

我想这或多或少就是你要找的东西。Regex可以根据您的特定需求进行细化。

re.sub函数在字符串中搜索匹配项,将其解析为Match对象,并在分组Match对象上执行函数。

在本例中,我用lambda函数替换了通常的函数调用,以创建一个一行。

代码语言:javascript
复制
import re

url_with_fs_dates = 'www.helloworld.com/test/01/01/2022&01/02/2022222'
url_with_period_dates = re.sub(r'\d{2}\/\d{2}\/\d{4}', lambda x: x.group().replace('/','.'), url_with_fs_dates)

print(url_with_period_dates)
# www.helloworld.com/test/01.01.2022&01.02.2022222
票数 0
EN

Stack Overflow用户

发布于 2022-10-24 19:11:46

我假设日期可以有一个或两个数字的月份和日期,整个日期必须在一个词的边界,意味着没有字母数字或'_‘字符在左和右。如果这个假设不正确,那么从以下正则表达式中删除每个'\b‘:

代码语言:javascript
复制
\b(\d\d?)/(\d\d?)/(\d{4})\b

见RegEx演示

  1. \b -匹配空字符串,但只匹配单词的开头或结尾。
  2. (\d\d?) -匹配一个或两个数字作为组1。
  3. / - Match '/'.
  4. (\d\d?) -匹配一个或两个数字作为组2。
  5. / - Match '/'.
  6. (\d{4}) -匹配4位数作为第3组。
  7. \b -匹配空字符串,但只匹配单词的开头或结尾。

所有匹配的事件被替换为..。

代码语言:javascript
复制
\1.\2.\3

其中\1、\2和\3代表组1、2和3匹配。

代码语言:javascript
复制
import re

s = 'x=1/1/2023&y=12/25/2023,01/16/2024'

s = re.sub(r'\b(\d\d?)/(\d\d?)/(\d{4})\b', r'\1.\2.\3', s)
print(s)

指纹:

代码语言:javascript
复制
x=1.1.2023&y=12.25.2023,01.16.2024

Note

我不熟悉所有的国际语言(很明显),对于那些我熟悉的数字使用日期是0,1,2,...9。如果您的语言是这样的,那么理想情况下,应该使用[0-9]而不是\d,这可以与[0-9]以外的其他数字字符匹配。但我假设您的输入不会包含这些字符,如果它们不是在您使用的语言中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74181292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档