自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用AI幫助開發(fā)者處理正則表達式

譯文 精選
人工智能
本文從正則表達式的生成原理說起,介紹了兩款可供免費使用的AI生成工具。

譯者 | 陳峻

審校 | 重樓

不知你是否聽說過由人工智能(AI)來生成正則表達式(Regex)。這是一個有趣的領域,鑒于人工智能在文本分析方面優(yōu)異的表現,它們足以開始“整理”各種現有表達式工具了。

作為開發(fā)人員,我們可能更希望將人工智能作為開發(fā)系統(tǒng)的一部分,從日常自己的工作流中提取信息,生成表達式,而不是停留在被動地接受由OpenAI等公司提供的所謂以用戶為中心的平臺方案的層面上。下面,我將從正則表達式的生成原理說起,向你介紹兩款可供免費使用的此類工具。

表達式生成原理

讓我們從一個簡單的倫敦旅行問題開始:“請問,從WalthamstowPimlico的最佳旅行方式是什么?”對此,ChatGPT能夠輕松地從該問句中提取起點和終點,并給出如下圖所示的答復:

該問題并不難回答。如果你愿意,還可以通過一問一答的方式,獲取更多的最新信息。上述問例的核心在于,算法準確地捕捉了“從(from)”和“到(to)”之間的文本,進而可以生產一個如下簡單的正則表達式案例,即:

/from ([A-Z][a-z]*) to ([A-Z][a-z]*)/

如下圖所示,通過訪問www.regex101.com,我們可以看到其詳細的過程:

從下面整理的信息中,我們可以看出,兩個“捕獲組(capture group)”都成功捕捉到了起點和終點信息:

因此,假設我們需要獲取一個與上面類似的正則表達式,便可以借助人工智能工具來實現。總體而言,我們需要人工智能能夠做到:

  1. 主要目的是能夠生成正確的正則表達式,然后將其應用到自己的程序代碼中。
  2. 利用人工智能的優(yōu)勢,理解句子中的情感表達,并通過起點和終點等關鍵字,來確認正在尋找的方向。
  3. 用戶可以在處理代碼的同時,快速領悟正則表達式的語法。
  4. 根據人工智能給出的多種不同的正則表達式方式,針對實際問題,選取最優(yōu)解。

Regex.ai

如果你持續(xù)關注正則表達式領域的話,也許會和我一樣,首先想到的是Regex.ai網站。該網站的使用方式既有趣又簡單:你只需創(chuàng)建一個短語,并加入需要被提取的單詞,那么該網站就會生成各種候選的正則表達式。讓我們以上述旅行為例往下看:

如你所見,網站上的人工智能已按要求提取了起點和終點。

在此基礎上,我按下“運行(run)”按鈕,等待幾秒鐘后,便得到以下信息:

在上面的截圖中,你可以看到有四個不同的代理進行了四次不同的嘗試。其正則表達式位于每一列的上方,對應的結果位于下方。如你所見,只有一列提取到了正確的回復(即:代理B的兩組捕獲是正確的)。接著,在我點擊代理B的結果后,將會出現如下內容:

由上面的截圖可知,人工智能確實已正確地理解了問句的意思(盡管它可能還沒有完全理解提問者強調的是起點和終點)。

從技術上講,由于它使用了單詞邊界(如:開頭的\b)和空白匹配器(\s),而不僅僅是空格,因此其結果比較清晰可讀。同時,考慮到真實地名單詞可能存在不僅僅出現首字母為大寫的情況,因此相較于[A-Z][a-z]+,它使用了更為合理的[A-Z][a-z]*

RegExGPT.app

Regex.ai不同,網站RegExGPT.app并不會去捕獲各種詞組,而且采取如下圖所示的另一種方法:

通過在指定的問題區(qū)域內,使用英語來詢問提問者希望提供什么,該網站會給出創(chuàng)意性的組合。不僅如此,它還為我們提供了一套可行的正則表達式代碼段,而且其效果還不錯:

如上圖所示,首先,為了理解上下文,它會將輸出函數命名為“extractRoute”。

接著,它會對所提供的正則表達式進行全面解釋(請參閱下圖):

而且,它甚至還會給出一個如何在JavaScript中使用的示例:

雖然上述正則表達式本身有些復雜,但是它能夠完整地解釋其推理過程。其中,括號用于捕獲,且被正則表達式賦予了優(yōu)先權,而(?: ) 在此表示為非捕獲組(non-capturing group)。非捕獲組可用于完成前者“from”的捕獲,而無需為后者“to”產生開銷。

總的說來,雖然表達式(\w+(?:\s\w+)*)看起來比較復雜,但是其作用足以捕捉到包含了多個關鍵字(multi-word)的表達式,且不會弄錯捕捉組。如下圖所示,假設我們必須從Green Park出發(fā),而不是從Walthamstow出發(fā):

顯然,地名Green Park中的空格并沒有造成任何問題,而其他生成工具則不然。

目前,我僅發(fā)現了上述這兩款可供免費使用的人工智能工具,能夠生成滿足用戶不同場景需求的正則表達式。如果你有更好的AI工具值得推薦,不妨分享給我吧!

譯者介紹

陳峻(Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。

原文標題:Using AI to Help Developers Work with Regular Expressions,作者:David Eastman

責任編輯:華軒 來源: 51CTO
相關推薦

2012-04-28 15:22:46

PHP

2010-03-25 18:25:36

Python正則表達式

2018-09-27 15:25:08

正則表達式前端

2009-09-16 17:29:30

正則表達式使用詳解

2020-09-04 09:16:04

Python正則表達式虛擬機

2023-10-07 08:25:09

Java處理工具正則表達式

2024-12-25 15:09:38

Python字符串函數

2012-05-08 13:29:01

VB

2021-05-25 09:18:04

正則表達式Linux字符串

2024-09-14 09:18:14

Python正則表達式

2018-04-21 07:11:53

正則表達式Python函數

2010-07-14 09:47:04

Perl正則表達式

2021-01-27 11:34:19

Python正則表達式字符串

2009-02-18 09:48:20

正則表達式Java教程

2009-09-16 18:19:34

正則表達式組

2011-06-02 12:34:16

正則表達式

2017-05-12 10:47:45

Linux正則表達式程序基礎

2019-07-17 15:45:47

正則表達式字符串前端

2022-03-28 06:19:14

正則表達式開發(fā)

2016-11-10 16:21:22

Java 正則表達式
點贊
收藏

51CTO技術棧公眾號